0s autopkgtest [15:06:17]: starting date and time: 2025-10-29 15:06:17+0000 0s autopkgtest [15:06:17]: git checkout: 508d4a25 a-v-ssh wait_for_ssh: demote "ssh connection failed" to a debug message 0s autopkgtest [15:06:17]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.sfucujss/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:libscalar-list-utils-perl --apt-upgrade libjson-schema-modern-perl --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=libscalar-list-utils-perl/1:1.70-1 -- lxd -r lxd-armhf-10.145.243.254 lxd-armhf-10.145.243.254:autopkgtest/ubuntu/resolute/armhf 25s autopkgtest [15:06:42]: testbed dpkg architecture: armhf 27s autopkgtest [15:06:44]: testbed apt version: 3.1.6ubuntu2 31s autopkgtest [15:06:48]: @@@@@@@@@@@@@@@@@@@@ test bed setup 33s autopkgtest [15:06:50]: testbed release detected to be: None 41s autopkgtest [15:06:58]: updating testbed package index (apt update) 43s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 43s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [87.8 kB] 43s Get:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease [87.8 kB] 43s Get:4 http://ftpmaster.internal/ubuntu resolute-security InRelease [87.8 kB] 43s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5856 B] 43s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [3643 kB] 44s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [205 kB] 44s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [70.5 kB] 44s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [252 kB] 44s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted armhf Packages [940 B] 44s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [2391 kB] 44s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [34.2 kB] 44s Get:13 http://ftpmaster.internal/ubuntu resolute/restricted Sources [12.5 kB] 44s Get:14 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.0 MB] 46s Get:15 http://ftpmaster.internal/ubuntu resolute/main Sources [1404 kB] 46s Get:16 http://ftpmaster.internal/ubuntu resolute/multiverse Sources [308 kB] 46s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1372 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] 46s Get:20 http://ftpmaster.internal/ubuntu resolute/multiverse armhf Packages [182 kB] 49s Fetched 46.3 MB in 7s (6814 kB/s) 51s Reading package lists... 57s autopkgtest [15:07:14]: upgrading testbed (apt dist-upgrade and autopurge) 59s Reading package lists... 59s Building dependency tree... 59s Reading state information... 60s Calculating upgrade... 61s The following NEW packages will be installed: 61s python3.14-gdbm 61s The following packages will be upgraded: 61s apparmor apt base-files bind9-dnsutils bind9-host bind9-libs binutils 61s binutils-arm-linux-gnueabihf binutils-common bsdextrautils bsdutils 61s cloud-init cloud-init-base distro-info-data dpkg dpkg-dev eject fdisk 61s gcc-15-base gir1.2-girepository-2.0 gir1.2-glib-2.0 gnu-coreutils 61s libapparmor1 libapt-pkg7.0 libatomic1 libaudit-common libaudit1 libbinutils 61s libblkid1 libbrotli1 libcap-ng0 libctf-nobfd0 libctf0 libdpkg-perl 61s libdrm-common libdrm2 libelf1t64 libfdisk1 libgcc-s1 libgirepository-1.0-1 61s libglib2.0-0t64 libglib2.0-data libjson-c5 liblastlog2-2 libmount1 61s libnewt0.52 libnftables1 libp11-kit0 libpython3.13-minimal 61s libpython3.13-stdlib libseccomp2 libselinux1 libsemanage-common libsemanage2 61s libsframe2 libsmartcols1 libstdc++6 libuuid1 libxml2-16 login 61s lto-disabled-list mount nftables python-apt-common python3-apt 61s python3-bcrypt python3-blinker python3-cffi-backend python3-dbus 61s python3-gdbm python3-inflect python3-jwt python3-lazr.uri python3-markupsafe 61s python3-oauthlib python3-openssl python3-pyparsing python3-yaml python3-zipp 61s python3.13 python3.13-gdbm python3.13-minimal sudo-rs tzdata util-linux 61s uuid-runtime whiptail 61s 87 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 61s Need to get 26.1 MB of archives. 61s After this operation, 1018 kB of additional disk space will be used. 61s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf base-files armhf 14ubuntu4 [75.4 kB] 62s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libatomic1 armhf 15.2.0-5ubuntu1 [7942 B] 62s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-15-base armhf 15.2.0-5ubuntu1 [58.1 kB] 62s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf libgcc-s1 armhf 15.2.0-5ubuntu1 [40.6 kB] 62s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libstdc++6 armhf 15.2.0-5ubuntu1 [731 kB] 62s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libapt-pkg7.0 armhf 3.1.11 [1157 kB] 62s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf dpkg armhf 1.22.21ubuntu4 [1245 kB] 62s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf eject armhf 2.41.2-4ubuntu1 [65.9 kB] 62s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf fdisk armhf 2.41.2-4ubuntu1 [164 kB] 62s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf libblkid1 armhf 2.41.2-4ubuntu1 [174 kB] 62s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libmount1 armhf 2.41.2-4ubuntu1 [206 kB] 62s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libsmartcols1 armhf 2.41.2-4ubuntu1 [143 kB] 62s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf mount armhf 2.41.2-4ubuntu1 [166 kB] 62s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf uuid-runtime armhf 2.41.2-4ubuntu1 [67.6 kB] 62s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf libuuid1 armhf 2.41.2-4ubuntu1 [43.8 kB] 62s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf libfdisk1 armhf 2.41.2-4ubuntu1 [222 kB] 62s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf bsdutils armhf 1:2.41.2-4ubuntu1 [98.2 kB] 62s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf util-linux armhf 2.41.2-4ubuntu1 [1146 kB] 62s Get:19 http://ftpmaster.internal/ubuntu resolute/main armhf bsdextrautils armhf 2.41.2-4ubuntu1 [101 kB] 62s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf libselinux1 armhf 3.8.1-1build2 [81.3 kB] 62s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf libseccomp2 armhf 2.6.0-2ubuntu3 [53.5 kB] 62s Get:22 http://ftpmaster.internal/ubuntu resolute/main armhf apt armhf 3.1.11 [1434 kB] 62s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf gnu-coreutils armhf 9.7-3ubuntu1 [1209 kB] 62s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf libaudit-common all 1:4.0.5-1build2 [6596 B] 62s Get:25 http://ftpmaster.internal/ubuntu resolute/main armhf libcap-ng0 armhf 0.8.5-4build3 [14.0 kB] 62s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf libaudit1 armhf 1:4.0.5-1build2 [51.7 kB] 62s Get:27 http://ftpmaster.internal/ubuntu resolute/main armhf login armhf 1:4.16.0-2+really2.41.2-4ubuntu1 [109 kB] 62s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf python3.13 armhf 3.13.9-1 [753 kB] 62s Get:29 http://ftpmaster.internal/ubuntu resolute/main armhf python3.13-minimal armhf 3.13.9-1 [2058 kB] 62s Get:30 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.13-stdlib armhf 3.13.9-1 [1957 kB] 62s Get:31 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.13-minimal armhf 3.13.9-1 [873 kB] 62s Get:32 http://ftpmaster.internal/ubuntu resolute/main armhf tzdata all 2025b-5ubuntu1 [198 kB] 62s Get:33 http://ftpmaster.internal/ubuntu resolute/main armhf liblastlog2-2 armhf 2.41.2-4ubuntu1 [34.6 kB] 62s Get:34 http://ftpmaster.internal/ubuntu resolute/main armhf libsemanage-common all 3.8.1-1build1 [7916 B] 62s Get:35 http://ftpmaster.internal/ubuntu resolute/main armhf libsemanage2 armhf 3.8.1-1build1 [89.2 kB] 62s Get:36 http://ftpmaster.internal/ubuntu resolute/main armhf distro-info-data all 0.68 [7378 B] 62s Get:37 http://ftpmaster.internal/ubuntu resolute/main armhf gir1.2-girepository-2.0 armhf 1.86.0-6 [25.3 kB] 62s Get:38 http://ftpmaster.internal/ubuntu resolute/main armhf gir1.2-glib-2.0 armhf 2.86.1-1 [182 kB] 62s Get:39 http://ftpmaster.internal/ubuntu resolute/main armhf libglib2.0-0t64 armhf 2.86.1-1 [1482 kB] 63s Get:40 http://ftpmaster.internal/ubuntu resolute/main armhf libgirepository-1.0-1 armhf 1.86.0-6 [111 kB] 63s Get:41 http://ftpmaster.internal/ubuntu resolute/main armhf libapparmor1 armhf 5.0.0~alpha1-0ubuntu8.1 [52.9 kB] 63s Get:42 http://ftpmaster.internal/ubuntu resolute/main armhf libelf1t64 armhf 0.193-3 [50.9 kB] 63s Get:43 http://ftpmaster.internal/ubuntu resolute/main armhf libglib2.0-data all 2.86.1-1 [56.7 kB] 63s Get:44 http://ftpmaster.internal/ubuntu resolute/main armhf libjson-c5 armhf 0.18+ds-1.1 [33.3 kB] 63s Get:45 http://ftpmaster.internal/ubuntu resolute/main armhf libnewt0.52 armhf 0.52.25-1ubuntu2 [39.9 kB] 63s Get:46 http://ftpmaster.internal/ubuntu resolute/main armhf libp11-kit0 armhf 0.25.9-2 [265 kB] 63s Get:47 http://ftpmaster.internal/ubuntu resolute/main armhf libxml2-16 armhf 2.14.5+dfsg-0.2build1 [527 kB] 63s Get:48 http://ftpmaster.internal/ubuntu resolute/main armhf python-apt-common all 3.0.0ubuntu2 [21.7 kB] 63s Get:49 http://ftpmaster.internal/ubuntu resolute/main armhf python3-apt armhf 3.0.0ubuntu2 [189 kB] 63s Get:50 http://ftpmaster.internal/ubuntu resolute/main armhf python3-cffi-backend armhf 2.0.0-2 [99.1 kB] 63s Get:51 http://ftpmaster.internal/ubuntu resolute/main armhf python3-dbus armhf 1.4.0-1build1 [113 kB] 63s Get:52 http://ftpmaster.internal/ubuntu resolute/main armhf python3-yaml armhf 6.0.2-2 [181 kB] 63s Get:53 http://ftpmaster.internal/ubuntu resolute/main armhf sudo-rs armhf 0.2.8-1ubuntu5.1 [548 kB] 63s Get:54 http://ftpmaster.internal/ubuntu resolute/main armhf whiptail armhf 0.52.25-1ubuntu2 [17.1 kB] 63s Get:55 http://ftpmaster.internal/ubuntu resolute/main armhf apparmor armhf 5.0.0~alpha1-0ubuntu8.1 [631 kB] 63s Get:56 http://ftpmaster.internal/ubuntu resolute/main armhf bind9-dnsutils armhf 1:9.20.11-1ubuntu3 [156 kB] 63s Get:57 http://ftpmaster.internal/ubuntu resolute/main armhf bind9-host armhf 1:9.20.11-1ubuntu3 [46.5 kB] 63s Get:58 http://ftpmaster.internal/ubuntu resolute/main armhf bind9-libs armhf 1:9.20.11-1ubuntu3 [1202 kB] 63s Get:59 http://ftpmaster.internal/ubuntu resolute/main armhf libdrm-common all 2.4.127-1ubuntu1 [9716 B] 63s Get:60 http://ftpmaster.internal/ubuntu resolute/main armhf libdrm2 armhf 2.4.127-1ubuntu1 [37.8 kB] 63s Get:61 http://ftpmaster.internal/ubuntu resolute/main armhf nftables armhf 1.1.5-2 [73.2 kB] 63s Get:62 http://ftpmaster.internal/ubuntu resolute/main armhf libnftables1 armhf 1.1.5-2 [329 kB] 63s Get:63 http://ftpmaster.internal/ubuntu resolute/main armhf python3.13-gdbm armhf 3.13.9-1 [30.9 kB] 63s Get:64 http://ftpmaster.internal/ubuntu resolute/main armhf python3.14-gdbm armhf 3.14.0-4 [31.3 kB] 63s Get:65 http://ftpmaster.internal/ubuntu resolute/main armhf python3-gdbm armhf 3.13.9-1 [8884 B] 63s Get:66 http://ftpmaster.internal/ubuntu resolute/main armhf libctf0 armhf 2.45-8ubuntu1 [75.7 kB] 63s Get:67 http://ftpmaster.internal/ubuntu resolute/main armhf libctf-nobfd0 armhf 2.45-8ubuntu1 [78.9 kB] 63s Get:68 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-arm-linux-gnueabihf armhf 2.45-8ubuntu1 [1022 kB] 63s Get:69 http://ftpmaster.internal/ubuntu resolute/main armhf libbinutils armhf 2.45-8ubuntu1 [411 kB] 63s Get:70 http://ftpmaster.internal/ubuntu resolute/main armhf binutils armhf 2.45-8ubuntu1 [3234 B] 63s Get:71 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-common armhf 2.45-8ubuntu1 [221 kB] 63s Get:72 http://ftpmaster.internal/ubuntu resolute/main armhf libsframe2 armhf 2.45-8ubuntu1 [13.3 kB] 63s Get:73 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init-base all 25.4~1gcb12e00e-0ubuntu1 [625 kB] 63s Get:74 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init all 25.4~1gcb12e00e-0ubuntu1 [2114 B] 63s Get:75 http://ftpmaster.internal/ubuntu resolute/main armhf python3-blinker all 1.9.0-2 [10.8 kB] 63s Get:76 http://ftpmaster.internal/ubuntu resolute/main armhf python3-jwt all 2.10.1-3 [21.1 kB] 63s Get:77 http://ftpmaster.internal/ubuntu resolute/main armhf python3-oauthlib all 3.3.1-1 [93.5 kB] 63s Get:78 http://ftpmaster.internal/ubuntu resolute/main armhf dpkg-dev all 1.22.21ubuntu4 [1088 kB] 63s Get:79 http://ftpmaster.internal/ubuntu resolute/main armhf libdpkg-perl all 1.22.21ubuntu4 [280 kB] 63s Get:80 http://ftpmaster.internal/ubuntu resolute/main armhf lto-disabled-list all 71 [12.5 kB] 63s Get:81 http://ftpmaster.internal/ubuntu resolute/main armhf libbrotli1 armhf 1.1.0-2build6 [320 kB] 63s Get:82 http://ftpmaster.internal/ubuntu resolute/main armhf python3-inflect all 7.5.0-1 [33.9 kB] 63s Get:83 http://ftpmaster.internal/ubuntu resolute/main armhf python3-lazr.uri all 1.0.6-7 [13.8 kB] 63s Get:84 http://ftpmaster.internal/ubuntu resolute/main armhf python3-markupsafe armhf 2.1.5-1build5 [13.3 kB] 63s Get:85 http://ftpmaster.internal/ubuntu resolute/main armhf python3-openssl all 25.1.0-1 [46.4 kB] 63s Get:86 http://ftpmaster.internal/ubuntu resolute/main armhf python3-pyparsing all 3.1.3-1 [87.0 kB] 63s Get:87 http://ftpmaster.internal/ubuntu resolute/main armhf python3-zipp all 3.23.0-1 [10.4 kB] 63s Get:88 http://ftpmaster.internal/ubuntu resolute/main armhf python3-bcrypt armhf 4.3.0-2 [251 kB] 64s Preconfiguring packages ... 64s Fetched 26.1 MB in 2s (13.9 MB/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 ... 65s Unpacking base-files (14ubuntu4) over (14ubuntu3) ... 65s Setting up base-files (14ubuntu4) ... 65s Installing new version of config file /etc/issue ... 65s Installing new version of config file /etc/issue.net ... 65s Installing new version of config file /etc/lsb-release ... 66s motd-news.service is a disabled or a static unit not running, not starting it. 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 ... 61081 files and directories currently installed.) 66s Preparing to unpack .../libatomic1_15.2.0-5ubuntu1_armhf.deb ... 66s Unpacking libatomic1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 66s Preparing to unpack .../gcc-15-base_15.2.0-5ubuntu1_armhf.deb ... 66s Unpacking gcc-15-base:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 66s Setting up gcc-15-base:armhf (15.2.0-5ubuntu1) ... 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 ... 61081 files and directories currently installed.) 66s Preparing to unpack .../libgcc-s1_15.2.0-5ubuntu1_armhf.deb ... 66s Unpacking libgcc-s1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 66s Setting up libgcc-s1:armhf (15.2.0-5ubuntu1) ... 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 ... 61081 files and directories currently installed.) 66s Preparing to unpack .../libstdc++6_15.2.0-5ubuntu1_armhf.deb ... 66s Unpacking libstdc++6:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 66s Setting up libstdc++6:armhf (15.2.0-5ubuntu1) ... 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 ... 61081 files and directories currently installed.) 66s Preparing to unpack .../libapt-pkg7.0_3.1.11_armhf.deb ... 66s Unpacking libapt-pkg7.0:armhf (3.1.11) over (3.1.6ubuntu2) ... 66s Setting up libapt-pkg7.0:armhf (3.1.11) ... 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 .../dpkg_1.22.21ubuntu4_armhf.deb ... 66s Unpacking dpkg (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 66s Setting up dpkg (1.22.21ubuntu4) ... 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 ... 61082 files and directories currently installed.) 67s Preparing to unpack .../eject_2.41.2-4ubuntu1_armhf.deb ... 67s Unpacking eject (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 67s Preparing to unpack .../fdisk_2.41.2-4ubuntu1_armhf.deb ... 67s Unpacking fdisk (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 67s Preparing to unpack .../libblkid1_2.41.2-4ubuntu1_armhf.deb ... 67s Unpacking libblkid1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 67s Setting up libblkid1:armhf (2.41.2-4ubuntu1) ... 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 ... 61082 files and directories currently installed.) 67s Preparing to unpack .../libmount1_2.41.2-4ubuntu1_armhf.deb ... 67s Unpacking libmount1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 67s Setting up libmount1:armhf (2.41.2-4ubuntu1) ... 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 ... 61082 files and directories currently installed.) 67s Preparing to unpack .../libsmartcols1_2.41.2-4ubuntu1_armhf.deb ... 67s Unpacking libsmartcols1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 67s Setting up libsmartcols1:armhf (2.41.2-4ubuntu1) ... 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 ... 61082 files and directories currently installed.) 67s Preparing to unpack .../mount_2.41.2-4ubuntu1_armhf.deb ... 67s Unpacking mount (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 68s Preparing to unpack .../uuid-runtime_2.41.2-4ubuntu1_armhf.deb ... 68s Unpacking uuid-runtime (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 68s Preparing to unpack .../libuuid1_2.41.2-4ubuntu1_armhf.deb ... 68s Unpacking libuuid1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 68s Setting up libuuid1:armhf (2.41.2-4ubuntu1) ... 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 ... 61082 files and directories currently installed.) 68s Preparing to unpack .../libfdisk1_2.41.2-4ubuntu1_armhf.deb ... 68s Unpacking libfdisk1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 68s Preparing to unpack .../bsdutils_1%3a2.41.2-4ubuntu1_armhf.deb ... 68s Unpacking bsdutils (1:2.41.2-4ubuntu1) over (1:2.41-4ubuntu4) ... 68s Setting up bsdutils (1:2.41.2-4ubuntu1) ... 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 ... 61079 files and directories currently installed.) 68s Preparing to unpack .../util-linux_2.41.2-4ubuntu1_armhf.deb ... 68s Unpacking util-linux (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 68s Setting up util-linux (2.41.2-4ubuntu1) ... 69s fstrim.service is a disabled or a static unit not running, not starting it. 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 ... 61050 files and directories currently installed.) 69s Preparing to unpack .../bsdextrautils_2.41.2-4ubuntu1_armhf.deb ... 69s Unpacking bsdextrautils (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 69s Preparing to unpack .../libselinux1_3.8.1-1build2_armhf.deb ... 69s Unpacking libselinux1:armhf (3.8.1-1build2) over (3.8.1-1build1) ... 69s Setting up libselinux1:armhf (3.8.1-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 ... 61053 files and directories currently installed.) 69s Preparing to unpack .../libseccomp2_2.6.0-2ubuntu3_armhf.deb ... 69s Unpacking libseccomp2:armhf (2.6.0-2ubuntu3) over (2.6.0-2ubuntu2) ... 69s Setting up libseccomp2:armhf (2.6.0-2ubuntu3) ... 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 ... 61053 files and directories currently installed.) 69s Preparing to unpack .../archives/apt_3.1.11_armhf.deb ... 69s Unpacking apt (3.1.11) over (3.1.6ubuntu2) ... 69s Setting up apt (3.1.11) ... 69s Installing new version of config file /etc/apt/apt.conf.d/01-vendor-ubuntu ... 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 ... 61054 files and directories currently installed.) 70s Preparing to unpack .../gnu-coreutils_9.7-3ubuntu1_armhf.deb ... 70s Unpacking gnu-coreutils (9.7-3ubuntu1) over (9.5-1ubuntu4) ... 70s Setting up gnu-coreutils (9.7-3ubuntu1) ... 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 ... 61049 files and directories currently installed.) 70s Preparing to unpack .../libaudit-common_1%3a4.0.5-1build2_all.deb ... 70s Unpacking libaudit-common (1:4.0.5-1build2) over (1:4.0.5-1build1) ... 71s Setting up libaudit-common (1:4.0.5-1build2) ... 71s (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.) 71s Preparing to unpack .../libcap-ng0_0.8.5-4build3_armhf.deb ... 71s Unpacking libcap-ng0:armhf (0.8.5-4build3) over (0.8.5-4build2) ... 71s Setting up libcap-ng0:armhf (0.8.5-4build3) ... 71s (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.) 71s Preparing to unpack .../libaudit1_1%3a4.0.5-1build2_armhf.deb ... 71s Unpacking libaudit1:armhf (1:4.0.5-1build2) over (1:4.0.5-1build1) ... 71s Setting up libaudit1:armhf (1:4.0.5-1build2) ... 71s (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.) 71s Preparing to unpack .../0-login_1%3a4.16.0-2+really2.41.2-4ubuntu1_armhf.deb ... 71s Unpacking login (1:4.16.0-2+really2.41.2-4ubuntu1) over (1:4.16.0-2+really2.41-4ubuntu4) ... 71s Preparing to unpack .../1-python3.13_3.13.9-1_armhf.deb ... 71s Unpacking python3.13 (3.13.9-1) over (3.13.7-1) ... 71s Preparing to unpack .../2-python3.13-minimal_3.13.9-1_armhf.deb ... 71s Unpacking python3.13-minimal (3.13.9-1) over (3.13.7-1) ... 71s Preparing to unpack .../3-libpython3.13-stdlib_3.13.9-1_armhf.deb ... 71s Unpacking libpython3.13-stdlib:armhf (3.13.9-1) over (3.13.7-1) ... 72s Preparing to unpack .../4-libpython3.13-minimal_3.13.9-1_armhf.deb ... 72s Unpacking libpython3.13-minimal:armhf (3.13.9-1) over (3.13.7-1) ... 72s Preparing to unpack .../5-tzdata_2025b-5ubuntu1_all.deb ... 72s Unpacking tzdata (2025b-5ubuntu1) over (2025b-3ubuntu1) ... 72s Preparing to unpack .../6-liblastlog2-2_2.41.2-4ubuntu1_armhf.deb ... 72s Unpacking liblastlog2-2:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 72s Setting up liblastlog2-2:armhf (2.41.2-4ubuntu1) ... 72s (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.) 72s Preparing to unpack .../libsemanage-common_3.8.1-1build1_all.deb ... 72s Unpacking libsemanage-common (3.8.1-1build1) over (3.8.1-1) ... 72s Setting up libsemanage-common (3.8.1-1build1) ... 72s (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.) 72s Preparing to unpack .../libsemanage2_3.8.1-1build1_armhf.deb ... 72s Unpacking libsemanage2:armhf (3.8.1-1build1) over (3.8.1-1) ... 72s Setting up libsemanage2:armhf (3.8.1-1build1) ... 72s (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.) 72s Preparing to unpack .../00-distro-info-data_0.68_all.deb ... 72s Unpacking distro-info-data (0.68) over (0.66) ... 72s Preparing to unpack .../01-gir1.2-girepository-2.0_1.86.0-6_armhf.deb ... 72s Unpacking gir1.2-girepository-2.0:armhf (1.86.0-6) over (1.84.0-1) ... 72s Preparing to unpack .../02-gir1.2-glib-2.0_2.86.1-1_armhf.deb ... 72s Unpacking gir1.2-glib-2.0:armhf (2.86.1-1) over (2.86.0-2) ... 72s Preparing to unpack .../03-libglib2.0-0t64_2.86.1-1_armhf.deb ... 72s Unpacking libglib2.0-0t64:armhf (2.86.1-1) over (2.86.0-2) ... 73s Preparing to unpack .../04-libgirepository-1.0-1_1.86.0-6_armhf.deb ... 73s Unpacking libgirepository-1.0-1:armhf (1.86.0-6) over (1.84.0-1) ... 73s Preparing to unpack .../05-libapparmor1_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 73s Unpacking libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 73s Preparing to unpack .../06-libelf1t64_0.193-3_armhf.deb ... 73s Unpacking libelf1t64:armhf (0.193-3) over (0.193-1) ... 73s Preparing to unpack .../07-libglib2.0-data_2.86.1-1_all.deb ... 73s Unpacking libglib2.0-data (2.86.1-1) over (2.86.0-2) ... 73s Preparing to unpack .../08-libjson-c5_0.18+ds-1.1_armhf.deb ... 73s Unpacking libjson-c5:armhf (0.18+ds-1.1) over (0.18+ds-1) ... 73s Preparing to unpack .../09-libnewt0.52_0.52.25-1ubuntu2_armhf.deb ... 73s Unpacking libnewt0.52:armhf (0.52.25-1ubuntu2) over (0.52.25-1ubuntu1) ... 73s Preparing to unpack .../10-libp11-kit0_0.25.9-2_armhf.deb ... 73s Unpacking libp11-kit0:armhf (0.25.9-2) over (0.25.5-3ubuntu1) ... 73s Preparing to unpack .../11-libxml2-16_2.14.5+dfsg-0.2build1_armhf.deb ... 73s Unpacking libxml2-16:armhf (2.14.5+dfsg-0.2build1) over (2.14.5+dfsg-0.2) ... 73s Preparing to unpack .../12-python-apt-common_3.0.0ubuntu2_all.deb ... 73s Unpacking python-apt-common (3.0.0ubuntu2) over (3.0.0ubuntu1) ... 73s Preparing to unpack .../13-python3-apt_3.0.0ubuntu2_armhf.deb ... 73s Unpacking python3-apt (3.0.0ubuntu2) over (3.0.0ubuntu1) ... 73s Preparing to unpack .../14-python3-cffi-backend_2.0.0-2_armhf.deb ... 73s Unpacking python3-cffi-backend:armhf (2.0.0-2) over (1.17.1-3) ... 73s Preparing to unpack .../15-python3-dbus_1.4.0-1build1_armhf.deb ... 74s Unpacking python3-dbus (1.4.0-1build1) over (1.4.0-1) ... 74s Preparing to unpack .../16-python3-yaml_6.0.2-2_armhf.deb ... 74s Unpacking python3-yaml (6.0.2-2) over (6.0.2-1build2) ... 74s Preparing to unpack .../17-sudo-rs_0.2.8-1ubuntu5.1_armhf.deb ... 74s Unpacking sudo-rs (0.2.8-1ubuntu5.1) over (0.2.8-1ubuntu5) ... 74s Preparing to unpack .../18-whiptail_0.52.25-1ubuntu2_armhf.deb ... 74s Unpacking whiptail (0.52.25-1ubuntu2) over (0.52.25-1ubuntu1) ... 74s Preparing to unpack .../19-apparmor_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 76s Unpacking apparmor (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 77s Preparing to unpack .../20-bind9-dnsutils_1%3a9.20.11-1ubuntu3_armhf.deb ... 77s Unpacking bind9-dnsutils (1:9.20.11-1ubuntu3) over (1:9.20.11-1ubuntu2) ... 77s Preparing to unpack .../21-bind9-host_1%3a9.20.11-1ubuntu3_armhf.deb ... 77s Unpacking bind9-host (1:9.20.11-1ubuntu3) over (1:9.20.11-1ubuntu2) ... 77s Preparing to unpack .../22-bind9-libs_1%3a9.20.11-1ubuntu3_armhf.deb ... 77s Unpacking bind9-libs:armhf (1:9.20.11-1ubuntu3) over (1:9.20.11-1ubuntu2) ... 77s Preparing to unpack .../23-libdrm-common_2.4.127-1ubuntu1_all.deb ... 77s Unpacking libdrm-common (2.4.127-1ubuntu1) over (2.4.125-1) ... 77s Preparing to unpack .../24-libdrm2_2.4.127-1ubuntu1_armhf.deb ... 77s Unpacking libdrm2:armhf (2.4.127-1ubuntu1) over (2.4.125-1) ... 77s Preparing to unpack .../25-nftables_1.1.5-2_armhf.deb ... 77s Unpacking nftables (1.1.5-2) over (1.1.5-1) ... 77s Preparing to unpack .../26-libnftables1_1.1.5-2_armhf.deb ... 77s Unpacking libnftables1:armhf (1.1.5-2) over (1.1.5-1) ... 77s Preparing to unpack .../27-python3.13-gdbm_3.13.9-1_armhf.deb ... 77s Unpacking python3.13-gdbm (3.13.9-1) over (3.13.7-1) ... 77s Selecting previously unselected package python3.14-gdbm. 77s Preparing to unpack .../28-python3.14-gdbm_3.14.0-4_armhf.deb ... 77s Unpacking python3.14-gdbm (3.14.0-4) ... 77s Preparing to unpack .../29-python3-gdbm_3.13.9-1_armhf.deb ... 77s Unpacking python3-gdbm:armhf (3.13.9-1) over (3.13.5-1) ... 77s Preparing to unpack .../30-libctf0_2.45-8ubuntu1_armhf.deb ... 77s Unpacking libctf0:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 77s Preparing to unpack .../31-libctf-nobfd0_2.45-8ubuntu1_armhf.deb ... 77s Unpacking libctf-nobfd0:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 77s Preparing to unpack .../32-binutils-arm-linux-gnueabihf_2.45-8ubuntu1_armhf.deb ... 77s Unpacking binutils-arm-linux-gnueabihf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 77s Preparing to unpack .../33-libbinutils_2.45-8ubuntu1_armhf.deb ... 77s Unpacking libbinutils:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 77s Preparing to unpack .../34-binutils_2.45-8ubuntu1_armhf.deb ... 77s Unpacking binutils (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 77s Preparing to unpack .../35-binutils-common_2.45-8ubuntu1_armhf.deb ... 77s Unpacking binutils-common:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 78s Preparing to unpack .../36-libsframe2_2.45-8ubuntu1_armhf.deb ... 78s Unpacking libsframe2:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 78s Preparing to unpack .../37-cloud-init-base_25.4~1gcb12e00e-0ubuntu1_all.deb ... 78s Unpacking cloud-init-base (25.4~1gcb12e00e-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 78s Preparing to unpack .../38-cloud-init_25.4~1gcb12e00e-0ubuntu1_all.deb ... 78s Unpacking cloud-init (25.4~1gcb12e00e-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 78s Preparing to unpack .../39-python3-blinker_1.9.0-2_all.deb ... 78s Unpacking python3-blinker (1.9.0-2) over (1.9.0-1) ... 78s Preparing to unpack .../40-python3-jwt_2.10.1-3_all.deb ... 79s Unpacking python3-jwt (2.10.1-3) over (2.10.1-2) ... 79s Preparing to unpack .../41-python3-oauthlib_3.3.1-1_all.deb ... 79s Unpacking python3-oauthlib (3.3.1-1) over (3.2.2-3) ... 79s Preparing to unpack .../42-dpkg-dev_1.22.21ubuntu4_all.deb ... 79s Unpacking dpkg-dev (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 79s Preparing to unpack .../43-libdpkg-perl_1.22.21ubuntu4_all.deb ... 79s Unpacking libdpkg-perl (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 79s Preparing to unpack .../44-lto-disabled-list_71_all.deb ... 79s Unpacking lto-disabled-list (71) over (69) ... 79s Preparing to unpack .../45-libbrotli1_1.1.0-2build6_armhf.deb ... 79s Unpacking libbrotli1:armhf (1.1.0-2build6) over (1.1.0-2build5) ... 79s Preparing to unpack .../46-python3-inflect_7.5.0-1_all.deb ... 79s Unpacking python3-inflect (7.5.0-1) over (7.3.1-2) ... 79s Preparing to unpack .../47-python3-lazr.uri_1.0.6-7_all.deb ... 79s Unpacking python3-lazr.uri (1.0.6-7) over (1.0.6-6) ... 79s Preparing to unpack .../48-python3-markupsafe_2.1.5-1build5_armhf.deb ... 80s Unpacking python3-markupsafe (2.1.5-1build5) over (2.1.5-1build4) ... 80s Preparing to unpack .../49-python3-openssl_25.1.0-1_all.deb ... 80s Unpacking python3-openssl (25.1.0-1) over (25.0.0-1) ... 80s Preparing to unpack .../50-python3-pyparsing_3.1.3-1_all.deb ... 80s Unpacking python3-pyparsing (3.1.3-1) over (3.1.2-1) ... 80s Preparing to unpack .../51-python3-zipp_3.23.0-1_all.deb ... 80s Unpacking python3-zipp (3.23.0-1) over (3.21.0-1) ... 80s Preparing to unpack .../52-python3-bcrypt_4.3.0-2_armhf.deb ... 80s Unpacking python3-bcrypt (4.3.0-2) over (4.2.0-2.1build1) ... 80s Setting up lto-disabled-list (71) ... 80s Setting up libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) ... 80s Setting up libnewt0.52:armhf (0.52.25-1ubuntu2) ... 80s Setting up libnftables1:armhf (1.1.5-2) ... 80s Setting up nftables (1.1.5-2) ... 81s Setting up bsdextrautils (2.41.2-4ubuntu1) ... 81s Setting up python3-jwt (2.10.1-3) ... 81s Setting up distro-info-data (0.68) ... 81s Setting up libxml2-16:armhf (2.14.5+dfsg-0.2build1) ... 81s Setting up libsframe2:armhf (2.45-8ubuntu1) ... 81s Setting up python3-openssl (25.1.0-1) ... 81s Setting up python3-bcrypt (4.3.0-2) ... 81s Setting up libbrotli1:armhf (1.1.0-2build6) ... 81s Setting up binutils-common:armhf (2.45-8ubuntu1) ... 81s Setting up libctf-nobfd0:armhf (2.45-8ubuntu1) ... 81s Setting up python3-yaml (6.0.2-2) ... 81s Setting up python3-lazr.uri (1.0.6-7) ... 82s Setting up python3-zipp (3.23.0-1) ... 82s Setting up python3-markupsafe (2.1.5-1build5) ... 82s Setting up libelf1t64:armhf (0.193-3) ... 82s Setting up tzdata (2025b-5ubuntu1) ... 82s 82s Current default time zone: 'Etc/UTC' 82s Local time is now: Wed Oct 29 15:07:39 UTC 2025. 82s Universal Time is now: Wed Oct 29 15:07:39 UTC 2025. 82s Run 'dpkg-reconfigure tzdata' if you wish to change it. 82s 82s Setting up eject (2.41.2-4ubuntu1) ... 82s Setting up libpython3.13-minimal:armhf (3.13.9-1) ... 82s Setting up apparmor (5.0.0~alpha1-0ubuntu8.1) ... 82s Installing new version of config file /etc/apparmor.d/fusermount3 ... 83s apparmor_parser: Unable to replace "lsb_release". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 83s 83s apparmor_parser: Unable to replace "kmod". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 83s 83s apparmor_parser: Unable to replace "nvidia_modprobe". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 83s 84s Reloading AppArmor profiles 84s /sbin/apparmor_parser: Unable to replace "1password". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "Discord". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "MongoDB Compass". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "balena-etcher". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "brave". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "buildah". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "cam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "ch-checkns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "bwrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "ch-run". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "chrome". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "chromium". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "vscode". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "crun". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "babeld". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "devhelp". /sbin/apparmor_parser: Unable to replace "bgpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "alsamixer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "element-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "epiphany". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "evolution". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "firefox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "flatpak". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "bfdd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "foliate". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "geary". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "github-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /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. 84s 84s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "eigrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "fabricd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "dig". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "hostname". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "iotop-c". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "kchmviewer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "keybase". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "lc-compliance". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "fusermount3". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "libcamerify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "isisd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "linux-sandbox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "Xorg". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "loupe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "john". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "ldpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "ipa_verify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "lxc-attach". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "lxc-create". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "lxc-destroy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "lxc-execute". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "lxc-stop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "lxc-unshare". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "linux-boot-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "lsblk". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "compressor". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "locale". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "lxc-usernsexec". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "lsusb". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "gs". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "mmdebstrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "msedge". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "notepadqq". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "lsb_release". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "irssi". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "mosquitto". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "obsidian". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "opam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "opera". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "nslookup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "mbsync". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "nhrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "notify-send". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "pageedit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "nc.openbsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "kmod". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "nvidia_modprobe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "ospf6d". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "ospfd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "pathd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "podman". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "polypane". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "pbrd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "privacybrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "qcam". /sbin/apparmor_parser: Unable to replace "qmapshack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "os-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "plasmashell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "qutebrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "pim6d". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "pimd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "rootlesskit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "rpm". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "rssguard". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "runc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild-abort". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "qpdf". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild-adduser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "ripngd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild-apt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild-checkpackages". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild-createchroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild-clean". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild-destroychroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "ripd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild-distupgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild-hold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild-shell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild-unhold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "scide". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "signal-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild-upgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "sbuild-update". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "slack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "slirp4netns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "steam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "surfshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "stress-ng". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "openvpn". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "systemd-coredump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "thunderbird". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "ssh-keyscan". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "trinity". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "proftpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "staticd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "tup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "tinyproxy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "systemd-detect-virt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "tuxedo-control-center". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "unprivileged_userns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "userbindmount". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "mx-extract". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "rygel". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "unix-chkpwd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "/usr/bin/man". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_apt_news". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "uwsgi-core". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "vdens". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "virtiofsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "vivaldi-bin". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "vpnns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "/usr/sbin/chronyd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "vrrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "rsyslogd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "wg". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "cmds". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "tnftp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "wike". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "wpcom". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "who". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "wg-quick". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "dumpcap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "tshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "tcpdump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "znc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "apt_methods". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 84s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 84s 85s /sbin/apparmor_parser: Unable to replace "transmission-cli". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 85s 85s Error: At least one profile failed to load 85s Setting up python3-inflect (7.5.0-1) ... 85s Setting up libglib2.0-data (2.86.1-1) ... 85s Setting up python3-pyparsing (3.1.3-1) ... 85s Setting up python3.14-gdbm (3.14.0-4) ... 85s Setting up libp11-kit0:armhf (0.25.9-2) ... 85s Setting up libatomic1:armhf (15.2.0-5ubuntu1) ... 85s Setting up libdpkg-perl (1.22.21ubuntu4) ... 85s Setting up libfdisk1:armhf (2.41.2-4ubuntu1) ... 85s Setting up whiptail (0.52.25-1ubuntu2) ... 85s Setting up python-apt-common (3.0.0ubuntu2) ... 85s Setting up mount (2.41.2-4ubuntu1) ... 85s Setting up uuid-runtime (2.41.2-4ubuntu1) ... 86s uuidd.service is a disabled or a static unit not running, not starting it. 86s Setting up python3.13-minimal (3.13.9-1) ... 87s Setting up libbinutils:armhf (2.45-8ubuntu1) ... 87s Setting up libdrm-common (2.4.127-1ubuntu1) ... 87s Setting up libpython3.13-stdlib:armhf (3.13.9-1) ... 87s Setting up libjson-c5:armhf (0.18+ds-1.1) ... 87s Setting up sudo-rs (0.2.8-1ubuntu5.1) ... 87s Setting up python3-cffi-backend:armhf (2.0.0-2) ... 87s Setting up python3.13-gdbm (3.13.9-1) ... 87s Setting up login (1:4.16.0-2+really2.41.2-4ubuntu1) ... 87s Setting up python3-blinker (1.9.0-2) ... 87s Setting up libctf0:armhf (2.45-8ubuntu1) ... 87s Setting up bind9-libs:armhf (1:9.20.11-1ubuntu3) ... 87s Setting up python3.13 (3.13.9-1) ... 89s Setting up python3-gdbm:armhf (3.13.9-1) ... 89s Setting up python3-apt (3.0.0ubuntu2) ... 89s Setting up fdisk (2.41.2-4ubuntu1) ... 89s Setting up libglib2.0-0t64:armhf (2.86.1-1) ... 89s No schema files found: doing nothing. 89s Setting up python3-oauthlib (3.3.1-1) ... 89s Setting up gir1.2-glib-2.0:armhf (2.86.1-1) ... 89s Setting up libdrm2:armhf (2.4.127-1ubuntu1) ... 89s Setting up libgirepository-1.0-1:armhf (1.86.0-6) ... 89s Setting up bind9-host (1:9.20.11-1ubuntu3) ... 89s Setting up binutils-arm-linux-gnueabihf (2.45-8ubuntu1) ... 89s Setting up python3-dbus (1.4.0-1build1) ... 89s Setting up binutils (2.45-8ubuntu1) ... 89s Setting up cloud-init-base (25.4~1gcb12e00e-0ubuntu1) ... 90s Encountered debconf setting for cloud-init-base/datasources. 91s Setting up dpkg-dev (1.22.21ubuntu4) ... 91s Setting up gir1.2-girepository-2.0:armhf (1.86.0-6) ... 91s Setting up bind9-dnsutils (1:9.20.11-1ubuntu3) ... 91s Setting up cloud-init (25.4~1gcb12e00e-0ubuntu1) ... 91s Processing triggers for rsyslog (8.2504.0-1ubuntu2) ... 92s Processing triggers for systemd (257.9-0ubuntu2) ... 92s Processing triggers for man-db (2.13.1-1) ... 94s Processing triggers for plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu1) ... 94s Processing triggers for procps (2:4.0.4-8ubuntu3) ... 94s Processing triggers for install-info (7.1.1-1ubuntu1) ... 94s Processing triggers for libc-bin (2.42-0ubuntu3) ... 97s Reading package lists... 98s Building dependency tree... 98s Reading state information... 98s Solving dependencies... 99s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 101s autopkgtest [15:07:58]: rebooting testbed after setup commands that affected boot 143s autopkgtest [15:08:40]: testbed running kernel: Linux 6.8.0-58-generic #60~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 28 14:48:37 UTC 2 167s autopkgtest [15:09:04]: @@@@@@@@@@@@@@@@@@@@ apt-source libjson-schema-modern-perl 178s Get:1 http://ftpmaster.internal/ubuntu resolute/universe libjson-schema-modern-perl 0.611-1 (dsc) [4057 B] 178s Get:2 http://ftpmaster.internal/ubuntu resolute/universe libjson-schema-modern-perl 0.611-1 (tar) [224 kB] 178s Get:3 http://ftpmaster.internal/ubuntu resolute/universe libjson-schema-modern-perl 0.611-1 (diff) [7924 B] 178s gpgv: Signature made Sat May 31 15:20:17 2025 UTC 178s gpgv: using RSA key D1E1316E93A760A8104D85FABB3A68018649AA06 178s gpgv: Can't check signature: No public key 178s dpkg-source: warning: cannot verify inline signature for ./libjson-schema-modern-perl_0.611-1.dsc: no acceptable signature found 178s autopkgtest [15:09:15]: testing package libjson-schema-modern-perl version 0.611-1 180s autopkgtest [15:09:17]: build not needed 183s autopkgtest [15:09:20]: test autodep8-perl-build-deps: preparing testbed 184s Reading package lists... 185s Building dependency tree... 185s Reading state information... 185s Solving dependencies... 186s The following NEW packages will be installed: 186s autoconf autodep8 automake autopoint autotools-dev build-essential cpp 186s cpp-15 cpp-15-arm-linux-gnueabihf cpp-arm-linux-gnueabihf dctrl-tools 186s debhelper debugedit dh-autoreconf dh-strip-nondeterminism dwz g++ g++-15 186s g++-15-arm-linux-gnueabihf g++-arm-linux-gnueabihf gcc gcc-15 186s gcc-15-arm-linux-gnueabihf gcc-arm-linux-gnueabihf gettext git git-man 186s intltool-debian javascript-common libalgorithm-c3-perl libarchive-zip-perl 186s libasan8 libautovivification-perl libb-hooks-endofscope-perl 186s libb-hooks-op-check-perl libbuiltin-compat-perl libc-dev-bin libc6-dev 186s libcc1-0 libclass-c3-perl libclass-data-inheritable-perl 186s libclass-inspector-perl libclass-method-modifiers-perl 186s libclass-singleton-perl libclass-tiny-perl libclass-xsaccessor-perl 186s libclone-perl libcpan-meta-check-perl libcpan-requirements-dynamic-perl 186s libcpanel-json-xs-perl libcrypt-dev libcurl3t64-gnutls libdata-optlist-perl 186s libdata-validate-domain-perl libdatetime-format-rfc3339-perl 186s libdatetime-locale-perl libdatetime-perl libdatetime-timezone-perl 186s libdebhelper-perl libdevel-callchecker-perl libdevel-cycle-perl 186s libdevel-stacktrace-perl libdw1t64 libdynaloader-functions-perl 186s libemail-address-xs-perl liberror-perl libeval-closure-perl 186s libexception-class-perl libexporter-tiny-perl libextutils-config-perl 186s libextutils-hascompiler-perl libextutils-helpers-perl 186s libextutils-installpaths-perl libfeature-compat-try-perl libfile-chdir-perl 186s libfile-copy-recursive-perl libfile-sharedir-perl 186s libfile-stripnondeterminism-perl libgcc-15-dev 186s libgetopt-long-descriptive-perl libgit-wrapper-perl libgomp1 186s libimport-into-perl libio-stringy-perl libisl23 libjs-bootstrap5 186s libjs-highlight.js libjs-popper.js libjson-perl libjson-schema-modern-perl 186s libmodule-build-tiny-perl libmodule-implementation-perl 186s libmodule-runtime-perl libmojolicious-perl libmoo-perl libmoox-typetiny-perl 186s libmpc3 libmro-compat-perl libnamespace-autoclean-perl 186s libnamespace-clean-perl libnet-domain-tld-perl libnet-idn-encode-perl 186s libpackage-stash-perl libpadwalker-perl libparams-classify-perl 186s libparams-util-perl libparams-validate-perl 186s libparams-validationcompiler-perl libpath-tiny-perl libref-util-perl 186s libref-util-xs-perl librole-tiny-perl libsafe-isa-perl libscope-guard-perl 186s libsereal-decoder-perl libsereal-encoder-perl libsereal-perl 186s libsort-versions-perl libspecio-perl libstdc++-15-dev libstrictures-perl 186s libsub-exporter-perl libsub-exporter-progressive-perl libsub-identify-perl 186s libsub-install-perl libsub-name-perl libsub-quote-perl 186s libsyntax-keyword-try-perl libtest-deep-perl 186s libtest-deep-unorderedpairs-perl libtest-fatal-perl 186s libtest-file-sharedir-perl libtest-json-schema-acceptance-perl 186s libtest-memory-cycle-perl libtest-needs-perl libtest-warnings-perl 186s libtest-without-module-perl libtest2-suite-perl libtime-moment-perl libtool 186s libtry-tiny-perl libtype-tiny-perl libtype-tiny-xs-perl libubsan1 186s libvariable-magic-perl libxs-parse-keyword-perl libxstring-perl 186s linux-libc-dev m4 node-popper2 pkg-perl-autopkgtest po-debconf rpcsvc-proto 186s 0 upgraded, 153 newly installed, 0 to remove and 0 not upgraded. 186s Need to get 72.9 MB of archives. 186s After this operation, 256 MB of additional disk space will be used. 186s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf m4 armhf 1.4.19-8 [238 kB] 187s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf autoconf all 2.72-3.1ubuntu1 [384 kB] 188s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf dctrl-tools armhf 2.24-3build3 [94.7 kB] 188s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf autodep8 all 0.30 [13.7 kB] 188s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf autotools-dev all 20240727.1 [43.4 kB] 188s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf automake all 1:1.17-4ubuntu1 [572 kB] 189s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf autopoint all 0.23.1-2build2 [619 kB] 189s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf libc-dev-bin armhf 2.42-0ubuntu3 [21.8 kB] 189s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf linux-libc-dev armhf 6.17.0-5.5 [1771 kB] 190s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf libcrypt-dev armhf 1:4.4.38-1build1 [120 kB] 190s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf rpcsvc-proto armhf 1.4.3-1 [62.3 kB] 190s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libc6-dev armhf 2.42-0ubuntu3 [1416 kB] 190s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf libisl23 armhf 0.27-1 [546 kB] 191s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf libmpc3 armhf 1.3.1-1build3 [47.2 kB] 191s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf cpp-15-arm-linux-gnueabihf armhf 15.2.0-5ubuntu1 [10.1 MB] 193s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf cpp-15 armhf 15.2.0-5ubuntu1 [1034 B] 193s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf cpp-arm-linux-gnueabihf armhf 4:15.2.0-4ubuntu1 [5756 B] 193s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf cpp armhf 4:15.2.0-4ubuntu1 [22.4 kB] 193s Get:19 http://ftpmaster.internal/ubuntu resolute/main armhf libcc1-0 armhf 15.2.0-5ubuntu1 [43.6 kB] 193s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf libgomp1 armhf 15.2.0-5ubuntu1 [129 kB] 193s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf libasan8 armhf 15.2.0-5ubuntu1 [2952 kB] 193s Get:22 http://ftpmaster.internal/ubuntu resolute/main armhf libubsan1 armhf 15.2.0-5ubuntu1 [1187 kB] 194s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf libgcc-15-dev armhf 15.2.0-5ubuntu1 [898 kB] 194s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-15-arm-linux-gnueabihf armhf 15.2.0-5ubuntu1 [19.5 MB] 198s Get:25 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-15 armhf 15.2.0-5ubuntu1 [492 kB] 198s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-arm-linux-gnueabihf armhf 4:15.2.0-4ubuntu1 [1220 B] 198s Get:27 http://ftpmaster.internal/ubuntu resolute/main armhf gcc armhf 4:15.2.0-4ubuntu1 [5022 B] 198s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf libstdc++-15-dev armhf 15.2.0-5ubuntu1 [2635 kB] 199s Get:29 http://ftpmaster.internal/ubuntu resolute/main armhf g++-15-arm-linux-gnueabihf armhf 15.2.0-5ubuntu1 [11.4 MB] 203s Get:30 http://ftpmaster.internal/ubuntu resolute/main armhf g++-15 armhf 15.2.0-5ubuntu1 [23.7 kB] 203s Get:31 http://ftpmaster.internal/ubuntu resolute/main armhf g++-arm-linux-gnueabihf armhf 4:15.2.0-4ubuntu1 [968 B] 203s Get:32 http://ftpmaster.internal/ubuntu resolute/main armhf g++ armhf 4:15.2.0-4ubuntu1 [1086 B] 203s Get:33 http://ftpmaster.internal/ubuntu resolute/main armhf build-essential armhf 12.12ubuntu1 [5088 B] 203s Get:34 http://ftpmaster.internal/ubuntu resolute/main armhf libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 203s Get:35 http://ftpmaster.internal/ubuntu resolute/main armhf libtool all 2.5.4-4build1 [169 kB] 203s Get:36 http://ftpmaster.internal/ubuntu resolute/main armhf dh-autoreconf all 21 [12.5 kB] 203s Get:37 http://ftpmaster.internal/ubuntu resolute/main armhf libarchive-zip-perl all 1.68-1 [90.2 kB] 203s Get:38 http://ftpmaster.internal/ubuntu resolute/main armhf libfile-stripnondeterminism-perl all 1.14.2-1 [20.4 kB] 203s Get:39 http://ftpmaster.internal/ubuntu resolute/main armhf dh-strip-nondeterminism all 1.14.2-1 [5098 B] 203s Get:40 http://ftpmaster.internal/ubuntu resolute/main armhf libdw1t64 armhf 0.193-3 [253 kB] 203s Get:41 http://ftpmaster.internal/ubuntu resolute/main armhf debugedit armhf 1:5.2-3 [48.9 kB] 203s Get:42 http://ftpmaster.internal/ubuntu resolute/main armhf dwz armhf 0.16-2 [114 kB] 203s Get:43 http://ftpmaster.internal/ubuntu resolute/main armhf gettext armhf 0.23.1-2build2 [1059 kB] 204s Get:44 http://ftpmaster.internal/ubuntu resolute/main armhf intltool-debian all 0.35.0+20060710.6 [23.2 kB] 204s Get:45 http://ftpmaster.internal/ubuntu resolute/main armhf po-debconf all 1.0.21+nmu1 [233 kB] 204s Get:46 http://ftpmaster.internal/ubuntu resolute/main armhf debhelper all 13.24.2ubuntu1 [896 kB] 205s Get:47 http://ftpmaster.internal/ubuntu resolute/main armhf libcurl3t64-gnutls armhf 8.14.1-2ubuntu1 [352 kB] 205s Get:48 http://ftpmaster.internal/ubuntu resolute/main armhf liberror-perl all 0.17030-1 [23.5 kB] 205s Get:49 http://ftpmaster.internal/ubuntu resolute/main armhf git-man all 1:2.51.0-1ubuntu1 [1179 kB] 205s Get:50 http://ftpmaster.internal/ubuntu resolute/main armhf git armhf 1:2.51.0-1ubuntu1 [4649 kB] 208s Get:51 http://ftpmaster.internal/ubuntu resolute/main armhf javascript-common all 12+nmu1 [4828 B] 208s Get:52 http://ftpmaster.internal/ubuntu resolute/universe armhf libalgorithm-c3-perl all 0.11-2 [10.2 kB] 208s Get:53 http://ftpmaster.internal/ubuntu resolute/universe armhf libautovivification-perl armhf 0.18-2build5 [20.8 kB] 208s Get:54 http://ftpmaster.internal/ubuntu resolute/main armhf libb-hooks-op-check-perl armhf 0.22-3build2 [9174 B] 208s Get:55 http://ftpmaster.internal/ubuntu resolute/main armhf libdynaloader-functions-perl all 0.004-2 [11.5 kB] 208s Get:56 http://ftpmaster.internal/ubuntu resolute/main armhf libdevel-callchecker-perl armhf 0.009-2 [13.8 kB] 208s Get:57 http://ftpmaster.internal/ubuntu resolute/main armhf libparams-classify-perl armhf 0.015-2build6 [18.8 kB] 208s Get:58 http://ftpmaster.internal/ubuntu resolute/main armhf libmodule-runtime-perl all 0.018-1 [15.2 kB] 208s Get:59 http://ftpmaster.internal/ubuntu resolute/main armhf libtry-tiny-perl all 0.32-1 [21.2 kB] 208s Get:60 http://ftpmaster.internal/ubuntu resolute/main armhf libmodule-implementation-perl all 0.09-2 [12.0 kB] 208s Get:61 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-exporter-progressive-perl all 0.001013-3 [6718 B] 208s Get:62 http://ftpmaster.internal/ubuntu resolute/main armhf libvariable-magic-perl armhf 0.64-1build1 [33.4 kB] 208s Get:63 http://ftpmaster.internal/ubuntu resolute/main armhf libb-hooks-endofscope-perl all 0.28-2 [15.8 kB] 208s Get:64 http://ftpmaster.internal/ubuntu resolute/main armhf libpackage-stash-perl all 0.40-1 [19.5 kB] 208s Get:65 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-identify-perl armhf 0.14-3build4 [9396 B] 208s Get:66 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-name-perl armhf 0.28-1 [10.0 kB] 208s Get:67 http://ftpmaster.internal/ubuntu resolute/main armhf libnamespace-clean-perl all 0.27-2 [14.0 kB] 208s Get:68 http://ftpmaster.internal/ubuntu resolute/universe armhf libbuiltin-compat-perl all 0.003003-2 [6956 B] 208s Get:69 http://ftpmaster.internal/ubuntu resolute/universe armhf libclass-c3-perl all 0.35-2 [18.4 kB] 208s Get:70 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-data-inheritable-perl all 0.10-1 [8038 B] 208s Get:71 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-inspector-perl all 1.36-3 [15.4 kB] 208s Get:72 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-method-modifiers-perl all 2.15-1 [16.1 kB] 208s Get:73 http://ftpmaster.internal/ubuntu resolute/universe armhf libclass-singleton-perl all 1.6-2 [11.5 kB] 208s Get:74 http://ftpmaster.internal/ubuntu resolute/universe armhf libclass-tiny-perl all 1.008-2 [16.4 kB] 208s Get:75 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-xsaccessor-perl armhf 1.19-4build6 [32.4 kB] 208s Get:76 http://ftpmaster.internal/ubuntu resolute/main armhf libclone-perl armhf 0.47-1 [10.0 kB] 208s Get:77 http://ftpmaster.internal/ubuntu resolute/universe armhf libcpan-meta-check-perl all 0.018-1 [6090 B] 208s Get:78 http://ftpmaster.internal/ubuntu resolute/universe armhf libextutils-config-perl all 0.010-1 [7806 B] 208s Get:79 http://ftpmaster.internal/ubuntu resolute/universe armhf libextutils-hascompiler-perl all 0.025-1 [7738 B] 208s Get:80 http://ftpmaster.internal/ubuntu resolute/universe armhf libcpan-requirements-dynamic-perl all 0.002-1 [7582 B] 208s Get:81 http://ftpmaster.internal/ubuntu resolute/main armhf libcpanel-json-xs-perl armhf 4.39-2 [114 kB] 208s Get:82 http://ftpmaster.internal/ubuntu resolute/main armhf libparams-util-perl armhf 1.102-3build1 [20.5 kB] 208s Get:83 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-install-perl all 0.929-1 [9764 B] 208s Get:84 http://ftpmaster.internal/ubuntu resolute/main armhf libdata-optlist-perl all 0.114-1 [9708 B] 208s Get:85 http://ftpmaster.internal/ubuntu resolute/main armhf libnet-domain-tld-perl all 1.75-4 [29.0 kB] 208s Get:86 http://ftpmaster.internal/ubuntu resolute/main armhf libdata-validate-domain-perl all 0.15-1 [10.4 kB] 208s Get:87 http://ftpmaster.internal/ubuntu resolute/main armhf libfile-sharedir-perl all 1.118-3 [14.0 kB] 208s Get:88 http://ftpmaster.internal/ubuntu resolute/universe armhf libnamespace-autoclean-perl all 0.31-1 [11.9 kB] 208s Get:89 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-exporter-perl all 0.990-1 [49.0 kB] 208s Get:90 http://ftpmaster.internal/ubuntu resolute/universe armhf libeval-closure-perl all 0.14-3 [10.1 kB] 208s Get:91 http://ftpmaster.internal/ubuntu resolute/main armhf libdevel-stacktrace-perl all 2.0500-1 [22.1 kB] 208s Get:92 http://ftpmaster.internal/ubuntu resolute/main armhf libexception-class-perl all 1.45-1 [28.6 kB] 208s Get:93 http://ftpmaster.internal/ubuntu resolute/universe armhf libparams-validationcompiler-perl all 0.31-1 [28.3 kB] 208s Get:94 http://ftpmaster.internal/ubuntu resolute/universe armhf libmro-compat-perl all 0.15-2 [10.1 kB] 208s Get:95 http://ftpmaster.internal/ubuntu resolute/main armhf librole-tiny-perl all 2.002004-1 [16.3 kB] 208s Get:96 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-quote-perl all 2.006008-1ubuntu1 [20.7 kB] 208s Get:97 http://ftpmaster.internal/ubuntu resolute/universe armhf libxstring-perl armhf 0.005-2build4 [7650 B] 208s Get:98 http://ftpmaster.internal/ubuntu resolute/universe armhf libspecio-perl all 0.50-1 [127 kB] 208s Get:99 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-locale-perl all 1:1.41-1 [3193 kB] 210s Get:100 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-timezone-perl all 1:2.65-1+2025b [260 kB] 210s Get:101 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-perl armhf 2:1.65-1build3 [98.3 kB] 210s Get:102 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-format-rfc3339-perl all 1.10.0-1 [8154 B] 210s Get:103 http://ftpmaster.internal/ubuntu resolute/universe armhf libdevel-cycle-perl all 1.12-2 [10.1 kB] 210s Get:104 http://ftpmaster.internal/ubuntu resolute/main armhf libemail-address-xs-perl armhf 1.05-1build5 [26.5 kB] 210s Get:105 http://ftpmaster.internal/ubuntu resolute/main armhf libexporter-tiny-perl all 1.006002-1 [36.8 kB] 210s Get:106 http://ftpmaster.internal/ubuntu resolute/universe armhf libextutils-helpers-perl all 0.028-1 [10.8 kB] 210s Get:107 http://ftpmaster.internal/ubuntu resolute/universe armhf libextutils-installpaths-perl all 0.014-1 [13.2 kB] 210s Get:108 http://ftpmaster.internal/ubuntu resolute/main armhf libxs-parse-keyword-perl armhf 0.48-2 [59.3 kB] 210s Get:109 http://ftpmaster.internal/ubuntu resolute/main armhf libsyntax-keyword-try-perl armhf 0.30-1 [24.0 kB] 210s Get:110 http://ftpmaster.internal/ubuntu resolute/universe armhf libfeature-compat-try-perl all 0.05-1 [9998 B] 210s Get:111 http://ftpmaster.internal/ubuntu resolute/universe armhf libfile-chdir-perl all 0.1008-1.2 [10.4 kB] 210s Get:112 http://ftpmaster.internal/ubuntu resolute/universe armhf libfile-copy-recursive-perl all 0.45-4 [16.5 kB] 210s Get:113 http://ftpmaster.internal/ubuntu resolute/main armhf libio-stringy-perl all 2.113-2 [45.3 kB] 211s Get:114 http://ftpmaster.internal/ubuntu resolute/universe armhf libparams-validate-perl armhf 1.31-2build4 [52.9 kB] 211s Get:115 http://ftpmaster.internal/ubuntu resolute/universe armhf libgetopt-long-descriptive-perl all 0.116-2 [25.0 kB] 211s Get:116 http://ftpmaster.internal/ubuntu resolute/main armhf libsort-versions-perl all 1.62-3 [7378 B] 211s Get:117 http://ftpmaster.internal/ubuntu resolute/universe armhf libgit-wrapper-perl all 0.048-2 [29.5 kB] 211s Get:118 http://ftpmaster.internal/ubuntu resolute/main armhf libimport-into-perl all 1.002005-2 [10.7 kB] 211s Get:119 http://ftpmaster.internal/ubuntu resolute/universe armhf node-popper2 all 2.11.2-9 [106 kB] 211s Get:120 http://ftpmaster.internal/ubuntu resolute/universe armhf libjs-bootstrap5 all 5.3.5+dfsg-4 [479 kB] 211s Get:121 http://ftpmaster.internal/ubuntu resolute/universe armhf libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 211s Get:122 http://ftpmaster.internal/ubuntu resolute/universe armhf libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 211s Get:123 http://ftpmaster.internal/ubuntu resolute/main armhf libjson-perl all 4.10000-1 [81.9 kB] 211s Get:124 http://ftpmaster.internal/ubuntu resolute/universe armhf libmojolicious-perl all 9.39+dfsg-1 [761 kB] 211s Get:125 http://ftpmaster.internal/ubuntu resolute/main armhf libmoo-perl all 2.005005-1 [47.4 kB] 211s Get:126 http://ftpmaster.internal/ubuntu resolute/universe armhf libtype-tiny-perl all 2.004000-2 [340 kB] 212s Get:127 http://ftpmaster.internal/ubuntu resolute/universe armhf libmoox-typetiny-perl all 0.002003-4 [5930 B] 212s Get:128 http://ftpmaster.internal/ubuntu resolute/main armhf libpath-tiny-perl all 0.148-1 [47.9 kB] 212s Get:129 http://ftpmaster.internal/ubuntu resolute/universe armhf libref-util-perl all 0.204-2 [15.1 kB] 212s Get:130 http://ftpmaster.internal/ubuntu resolute/universe armhf libsafe-isa-perl all 1.000010-1 [7684 B] 212s Get:131 http://ftpmaster.internal/ubuntu resolute/main armhf libstrictures-perl all 2.000006-1 [16.3 kB] 212s Get:132 http://ftpmaster.internal/ubuntu resolute/universe armhf libjson-schema-modern-perl all 0.611-1 [106 kB] 212s Get:133 http://ftpmaster.internal/ubuntu resolute/universe armhf libmodule-build-tiny-perl all 0.051-1 [9788 B] 212s Get:134 http://ftpmaster.internal/ubuntu resolute/universe armhf libnet-idn-encode-perl armhf 2.500-5build1 [83.7 kB] 212s Get:135 http://ftpmaster.internal/ubuntu resolute/universe armhf libpadwalker-perl armhf 2.5-1build7 [14.0 kB] 212s Get:136 http://ftpmaster.internal/ubuntu resolute/universe armhf libref-util-xs-perl armhf 0.117-2build5 [11.5 kB] 212s Get:137 http://ftpmaster.internal/ubuntu resolute/universe armhf libscope-guard-perl all 0.21-2 [7730 B] 212s Get:138 http://ftpmaster.internal/ubuntu resolute/main armhf libsereal-decoder-perl armhf 5.004+ds-1build5 [94.4 kB] 212s Get:139 http://ftpmaster.internal/ubuntu resolute/main armhf libsereal-encoder-perl armhf 5.004+ds-1build4 [96.1 kB] 212s Get:140 http://ftpmaster.internal/ubuntu resolute/universe armhf libsereal-perl all 5.004-1 [8770 B] 212s Get:141 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-deep-perl all 1.205-1 [46.7 kB] 212s Get:142 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-deep-unorderedpairs-perl all 0.006-3 [9052 B] 212s Get:143 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-fatal-perl all 0.017-2 [12.1 kB] 212s Get:144 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-file-sharedir-perl all 1.001002-2 [26.3 kB] 212s Get:145 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest2-suite-perl all 0.000163-1 [377 kB] 212s Get:146 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-json-schema-acceptance-perl all 1.029-1 [89.9 kB] 212s Get:147 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-memory-cycle-perl all 1.06-2 [11.0 kB] 212s Get:148 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-needs-perl all 0.002010-1 [8530 B] 212s Get:149 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-warnings-perl all 0.038-1 [21.0 kB] 212s Get:150 http://ftpmaster.internal/ubuntu resolute/universe armhf libtest-without-module-perl all 0.23-1 [9732 B] 212s Get:151 http://ftpmaster.internal/ubuntu resolute/main armhf libtime-moment-perl armhf 0.44-2build5 [70.6 kB] 212s Get:152 http://ftpmaster.internal/ubuntu resolute/universe armhf libtype-tiny-xs-perl armhf 0.025-2build1 [23.5 kB] 212s Get:153 http://ftpmaster.internal/ubuntu resolute/universe armhf pkg-perl-autopkgtest all 0.82 [18.8 kB] 213s Fetched 72.9 MB in 26s (2801 kB/s) 213s Selecting previously unselected package m4. 213s (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 ... 61068 files and directories currently installed.) 213s Preparing to unpack .../000-m4_1.4.19-8_armhf.deb ... 213s Unpacking m4 (1.4.19-8) ... 213s Selecting previously unselected package autoconf. 213s Preparing to unpack .../001-autoconf_2.72-3.1ubuntu1_all.deb ... 213s Unpacking autoconf (2.72-3.1ubuntu1) ... 213s Selecting previously unselected package dctrl-tools. 213s Preparing to unpack .../002-dctrl-tools_2.24-3build3_armhf.deb ... 213s Unpacking dctrl-tools (2.24-3build3) ... 213s Selecting previously unselected package autodep8. 213s Preparing to unpack .../003-autodep8_0.30_all.deb ... 213s Unpacking autodep8 (0.30) ... 213s Selecting previously unselected package autotools-dev. 213s Preparing to unpack .../004-autotools-dev_20240727.1_all.deb ... 213s Unpacking autotools-dev (20240727.1) ... 213s Selecting previously unselected package automake. 213s Preparing to unpack .../005-automake_1%3a1.17-4ubuntu1_all.deb ... 213s Unpacking automake (1:1.17-4ubuntu1) ... 213s Selecting previously unselected package autopoint. 213s Preparing to unpack .../006-autopoint_0.23.1-2build2_all.deb ... 213s Unpacking autopoint (0.23.1-2build2) ... 213s Selecting previously unselected package libc-dev-bin. 214s Preparing to unpack .../007-libc-dev-bin_2.42-0ubuntu3_armhf.deb ... 214s Unpacking libc-dev-bin (2.42-0ubuntu3) ... 214s Selecting previously unselected package linux-libc-dev:armhf. 214s Preparing to unpack .../008-linux-libc-dev_6.17.0-5.5_armhf.deb ... 214s Unpacking linux-libc-dev:armhf (6.17.0-5.5) ... 214s Selecting previously unselected package libcrypt-dev:armhf. 214s Preparing to unpack .../009-libcrypt-dev_1%3a4.4.38-1build1_armhf.deb ... 214s Unpacking libcrypt-dev:armhf (1:4.4.38-1build1) ... 214s Selecting previously unselected package rpcsvc-proto. 214s Preparing to unpack .../010-rpcsvc-proto_1.4.3-1_armhf.deb ... 214s Unpacking rpcsvc-proto (1.4.3-1) ... 214s Selecting previously unselected package libc6-dev:armhf. 214s Preparing to unpack .../011-libc6-dev_2.42-0ubuntu3_armhf.deb ... 214s Unpacking libc6-dev:armhf (2.42-0ubuntu3) ... 214s Selecting previously unselected package libisl23:armhf. 214s Preparing to unpack .../012-libisl23_0.27-1_armhf.deb ... 214s Unpacking libisl23:armhf (0.27-1) ... 214s Selecting previously unselected package libmpc3:armhf. 214s Preparing to unpack .../013-libmpc3_1.3.1-1build3_armhf.deb ... 214s Unpacking libmpc3:armhf (1.3.1-1build3) ... 214s Selecting previously unselected package cpp-15-arm-linux-gnueabihf. 214s Preparing to unpack .../014-cpp-15-arm-linux-gnueabihf_15.2.0-5ubuntu1_armhf.deb ... 214s Unpacking cpp-15-arm-linux-gnueabihf (15.2.0-5ubuntu1) ... 215s Selecting previously unselected package cpp-15. 215s Preparing to unpack .../015-cpp-15_15.2.0-5ubuntu1_armhf.deb ... 215s Unpacking cpp-15 (15.2.0-5ubuntu1) ... 215s Selecting previously unselected package cpp-arm-linux-gnueabihf. 215s Preparing to unpack .../016-cpp-arm-linux-gnueabihf_4%3a15.2.0-4ubuntu1_armhf.deb ... 215s Unpacking cpp-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 215s Selecting previously unselected package cpp. 215s Preparing to unpack .../017-cpp_4%3a15.2.0-4ubuntu1_armhf.deb ... 215s Unpacking cpp (4:15.2.0-4ubuntu1) ... 215s Selecting previously unselected package libcc1-0:armhf. 215s Preparing to unpack .../018-libcc1-0_15.2.0-5ubuntu1_armhf.deb ... 215s Unpacking libcc1-0:armhf (15.2.0-5ubuntu1) ... 215s Selecting previously unselected package libgomp1:armhf. 215s Preparing to unpack .../019-libgomp1_15.2.0-5ubuntu1_armhf.deb ... 215s Unpacking libgomp1:armhf (15.2.0-5ubuntu1) ... 215s Selecting previously unselected package libasan8:armhf. 215s Preparing to unpack .../020-libasan8_15.2.0-5ubuntu1_armhf.deb ... 215s Unpacking libasan8:armhf (15.2.0-5ubuntu1) ... 215s Selecting previously unselected package libubsan1:armhf. 215s Preparing to unpack .../021-libubsan1_15.2.0-5ubuntu1_armhf.deb ... 215s Unpacking libubsan1:armhf (15.2.0-5ubuntu1) ... 215s Selecting previously unselected package libgcc-15-dev:armhf. 215s Preparing to unpack .../022-libgcc-15-dev_15.2.0-5ubuntu1_armhf.deb ... 215s Unpacking libgcc-15-dev:armhf (15.2.0-5ubuntu1) ... 215s Selecting previously unselected package gcc-15-arm-linux-gnueabihf. 215s Preparing to unpack .../023-gcc-15-arm-linux-gnueabihf_15.2.0-5ubuntu1_armhf.deb ... 215s Unpacking gcc-15-arm-linux-gnueabihf (15.2.0-5ubuntu1) ... 216s Selecting previously unselected package gcc-15. 216s Preparing to unpack .../024-gcc-15_15.2.0-5ubuntu1_armhf.deb ... 216s Unpacking gcc-15 (15.2.0-5ubuntu1) ... 216s Selecting previously unselected package gcc-arm-linux-gnueabihf. 216s Preparing to unpack .../025-gcc-arm-linux-gnueabihf_4%3a15.2.0-4ubuntu1_armhf.deb ... 216s Unpacking gcc-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 216s Selecting previously unselected package gcc. 216s Preparing to unpack .../026-gcc_4%3a15.2.0-4ubuntu1_armhf.deb ... 216s Unpacking gcc (4:15.2.0-4ubuntu1) ... 216s Selecting previously unselected package libstdc++-15-dev:armhf. 216s Preparing to unpack .../027-libstdc++-15-dev_15.2.0-5ubuntu1_armhf.deb ... 216s Unpacking libstdc++-15-dev:armhf (15.2.0-5ubuntu1) ... 216s Selecting previously unselected package g++-15-arm-linux-gnueabihf. 216s Preparing to unpack .../028-g++-15-arm-linux-gnueabihf_15.2.0-5ubuntu1_armhf.deb ... 216s Unpacking g++-15-arm-linux-gnueabihf (15.2.0-5ubuntu1) ... 217s Selecting previously unselected package g++-15. 217s Preparing to unpack .../029-g++-15_15.2.0-5ubuntu1_armhf.deb ... 217s Unpacking g++-15 (15.2.0-5ubuntu1) ... 217s Selecting previously unselected package g++-arm-linux-gnueabihf. 217s Preparing to unpack .../030-g++-arm-linux-gnueabihf_4%3a15.2.0-4ubuntu1_armhf.deb ... 217s Unpacking g++-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 217s Selecting previously unselected package g++. 217s Preparing to unpack .../031-g++_4%3a15.2.0-4ubuntu1_armhf.deb ... 217s Unpacking g++ (4:15.2.0-4ubuntu1) ... 217s Selecting previously unselected package build-essential. 217s Preparing to unpack .../032-build-essential_12.12ubuntu1_armhf.deb ... 217s Unpacking build-essential (12.12ubuntu1) ... 217s Selecting previously unselected package libdebhelper-perl. 217s Preparing to unpack .../033-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 217s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 217s Selecting previously unselected package libtool. 217s Preparing to unpack .../034-libtool_2.5.4-4build1_all.deb ... 217s Unpacking libtool (2.5.4-4build1) ... 217s Selecting previously unselected package dh-autoreconf. 217s Preparing to unpack .../035-dh-autoreconf_21_all.deb ... 217s Unpacking dh-autoreconf (21) ... 217s Selecting previously unselected package libarchive-zip-perl. 218s Preparing to unpack .../036-libarchive-zip-perl_1.68-1_all.deb ... 218s Unpacking libarchive-zip-perl (1.68-1) ... 218s Selecting previously unselected package libfile-stripnondeterminism-perl. 218s Preparing to unpack .../037-libfile-stripnondeterminism-perl_1.14.2-1_all.deb ... 218s Unpacking libfile-stripnondeterminism-perl (1.14.2-1) ... 218s Selecting previously unselected package dh-strip-nondeterminism. 218s Preparing to unpack .../038-dh-strip-nondeterminism_1.14.2-1_all.deb ... 218s Unpacking dh-strip-nondeterminism (1.14.2-1) ... 218s Selecting previously unselected package libdw1t64:armhf. 218s Preparing to unpack .../039-libdw1t64_0.193-3_armhf.deb ... 218s Unpacking libdw1t64:armhf (0.193-3) ... 218s Selecting previously unselected package debugedit. 218s Preparing to unpack .../040-debugedit_1%3a5.2-3_armhf.deb ... 218s Unpacking debugedit (1:5.2-3) ... 218s Selecting previously unselected package dwz. 218s Preparing to unpack .../041-dwz_0.16-2_armhf.deb ... 218s Unpacking dwz (0.16-2) ... 218s Selecting previously unselected package gettext. 218s Preparing to unpack .../042-gettext_0.23.1-2build2_armhf.deb ... 218s Unpacking gettext (0.23.1-2build2) ... 218s Selecting previously unselected package intltool-debian. 218s Preparing to unpack .../043-intltool-debian_0.35.0+20060710.6_all.deb ... 218s Unpacking intltool-debian (0.35.0+20060710.6) ... 218s Selecting previously unselected package po-debconf. 218s Preparing to unpack .../044-po-debconf_1.0.21+nmu1_all.deb ... 218s Unpacking po-debconf (1.0.21+nmu1) ... 218s Selecting previously unselected package debhelper. 218s Preparing to unpack .../045-debhelper_13.24.2ubuntu1_all.deb ... 218s Unpacking debhelper (13.24.2ubuntu1) ... 218s Selecting previously unselected package libcurl3t64-gnutls:armhf. 218s Preparing to unpack .../046-libcurl3t64-gnutls_8.14.1-2ubuntu1_armhf.deb ... 218s Unpacking libcurl3t64-gnutls:armhf (8.14.1-2ubuntu1) ... 218s Selecting previously unselected package liberror-perl. 218s Preparing to unpack .../047-liberror-perl_0.17030-1_all.deb ... 218s Unpacking liberror-perl (0.17030-1) ... 218s Selecting previously unselected package git-man. 218s Preparing to unpack .../048-git-man_1%3a2.51.0-1ubuntu1_all.deb ... 218s Unpacking git-man (1:2.51.0-1ubuntu1) ... 219s Selecting previously unselected package git. 219s Preparing to unpack .../049-git_1%3a2.51.0-1ubuntu1_armhf.deb ... 219s Unpacking git (1:2.51.0-1ubuntu1) ... 219s Selecting previously unselected package javascript-common. 219s Preparing to unpack .../050-javascript-common_12+nmu1_all.deb ... 219s Unpacking javascript-common (12+nmu1) ... 219s Selecting previously unselected package libalgorithm-c3-perl. 219s Preparing to unpack .../051-libalgorithm-c3-perl_0.11-2_all.deb ... 219s Unpacking libalgorithm-c3-perl (0.11-2) ... 219s Selecting previously unselected package libautovivification-perl:armhf. 219s Preparing to unpack .../052-libautovivification-perl_0.18-2build5_armhf.deb ... 219s Unpacking libautovivification-perl:armhf (0.18-2build5) ... 219s Selecting previously unselected package libb-hooks-op-check-perl:armhf. 219s Preparing to unpack .../053-libb-hooks-op-check-perl_0.22-3build2_armhf.deb ... 219s Unpacking libb-hooks-op-check-perl:armhf (0.22-3build2) ... 219s Selecting previously unselected package libdynaloader-functions-perl. 219s Preparing to unpack .../054-libdynaloader-functions-perl_0.004-2_all.deb ... 219s Unpacking libdynaloader-functions-perl (0.004-2) ... 219s Selecting previously unselected package libdevel-callchecker-perl:armhf. 219s Preparing to unpack .../055-libdevel-callchecker-perl_0.009-2_armhf.deb ... 219s Unpacking libdevel-callchecker-perl:armhf (0.009-2) ... 219s Selecting previously unselected package libparams-classify-perl:armhf. 219s Preparing to unpack .../056-libparams-classify-perl_0.015-2build6_armhf.deb ... 219s Unpacking libparams-classify-perl:armhf (0.015-2build6) ... 219s Selecting previously unselected package libmodule-runtime-perl. 220s Preparing to unpack .../057-libmodule-runtime-perl_0.018-1_all.deb ... 220s Unpacking libmodule-runtime-perl (0.018-1) ... 220s Selecting previously unselected package libtry-tiny-perl. 220s Preparing to unpack .../058-libtry-tiny-perl_0.32-1_all.deb ... 220s Unpacking libtry-tiny-perl (0.32-1) ... 220s Selecting previously unselected package libmodule-implementation-perl. 220s Preparing to unpack .../059-libmodule-implementation-perl_0.09-2_all.deb ... 220s Unpacking libmodule-implementation-perl (0.09-2) ... 220s Selecting previously unselected package libsub-exporter-progressive-perl. 220s Preparing to unpack .../060-libsub-exporter-progressive-perl_0.001013-3_all.deb ... 220s Unpacking libsub-exporter-progressive-perl (0.001013-3) ... 220s Selecting previously unselected package libvariable-magic-perl. 220s Preparing to unpack .../061-libvariable-magic-perl_0.64-1build1_armhf.deb ... 220s Unpacking libvariable-magic-perl (0.64-1build1) ... 220s Selecting previously unselected package libb-hooks-endofscope-perl. 220s Preparing to unpack .../062-libb-hooks-endofscope-perl_0.28-2_all.deb ... 220s Unpacking libb-hooks-endofscope-perl (0.28-2) ... 220s Selecting previously unselected package libpackage-stash-perl. 220s Preparing to unpack .../063-libpackage-stash-perl_0.40-1_all.deb ... 220s Unpacking libpackage-stash-perl (0.40-1) ... 220s Selecting previously unselected package libsub-identify-perl. 220s Preparing to unpack .../064-libsub-identify-perl_0.14-3build4_armhf.deb ... 220s Unpacking libsub-identify-perl (0.14-3build4) ... 220s Selecting previously unselected package libsub-name-perl:armhf. 220s Preparing to unpack .../065-libsub-name-perl_0.28-1_armhf.deb ... 220s Unpacking libsub-name-perl:armhf (0.28-1) ... 220s Selecting previously unselected package libnamespace-clean-perl. 220s Preparing to unpack .../066-libnamespace-clean-perl_0.27-2_all.deb ... 220s Unpacking libnamespace-clean-perl (0.27-2) ... 220s Selecting previously unselected package libbuiltin-compat-perl. 220s Preparing to unpack .../067-libbuiltin-compat-perl_0.003003-2_all.deb ... 220s Unpacking libbuiltin-compat-perl (0.003003-2) ... 220s Selecting previously unselected package libclass-c3-perl. 220s Preparing to unpack .../068-libclass-c3-perl_0.35-2_all.deb ... 220s Unpacking libclass-c3-perl (0.35-2) ... 220s Selecting previously unselected package libclass-data-inheritable-perl. 220s Preparing to unpack .../069-libclass-data-inheritable-perl_0.10-1_all.deb ... 220s Unpacking libclass-data-inheritable-perl (0.10-1) ... 220s Selecting previously unselected package libclass-inspector-perl. 220s Preparing to unpack .../070-libclass-inspector-perl_1.36-3_all.deb ... 220s Unpacking libclass-inspector-perl (1.36-3) ... 220s Selecting previously unselected package libclass-method-modifiers-perl. 220s Preparing to unpack .../071-libclass-method-modifiers-perl_2.15-1_all.deb ... 220s Unpacking libclass-method-modifiers-perl (2.15-1) ... 221s Selecting previously unselected package libclass-singleton-perl. 221s Preparing to unpack .../072-libclass-singleton-perl_1.6-2_all.deb ... 221s Unpacking libclass-singleton-perl (1.6-2) ... 221s Selecting previously unselected package libclass-tiny-perl. 221s Preparing to unpack .../073-libclass-tiny-perl_1.008-2_all.deb ... 221s Unpacking libclass-tiny-perl (1.008-2) ... 221s Selecting previously unselected package libclass-xsaccessor-perl. 221s Preparing to unpack .../074-libclass-xsaccessor-perl_1.19-4build6_armhf.deb ... 221s Unpacking libclass-xsaccessor-perl (1.19-4build6) ... 221s Selecting previously unselected package libclone-perl:armhf. 221s Preparing to unpack .../075-libclone-perl_0.47-1_armhf.deb ... 221s Unpacking libclone-perl:armhf (0.47-1) ... 221s Selecting previously unselected package libcpan-meta-check-perl. 221s Preparing to unpack .../076-libcpan-meta-check-perl_0.018-1_all.deb ... 221s Unpacking libcpan-meta-check-perl (0.018-1) ... 221s Selecting previously unselected package libextutils-config-perl. 221s Preparing to unpack .../077-libextutils-config-perl_0.010-1_all.deb ... 221s Unpacking libextutils-config-perl (0.010-1) ... 221s Selecting previously unselected package libextutils-hascompiler-perl. 221s Preparing to unpack .../078-libextutils-hascompiler-perl_0.025-1_all.deb ... 221s Unpacking libextutils-hascompiler-perl (0.025-1) ... 221s Selecting previously unselected package libcpan-requirements-dynamic-perl. 221s Preparing to unpack .../079-libcpan-requirements-dynamic-perl_0.002-1_all.deb ... 221s Unpacking libcpan-requirements-dynamic-perl (0.002-1) ... 221s Selecting previously unselected package libcpanel-json-xs-perl:armhf. 221s Preparing to unpack .../080-libcpanel-json-xs-perl_4.39-2_armhf.deb ... 221s Unpacking libcpanel-json-xs-perl:armhf (4.39-2) ... 221s Selecting previously unselected package libparams-util-perl. 221s Preparing to unpack .../081-libparams-util-perl_1.102-3build1_armhf.deb ... 221s Unpacking libparams-util-perl (1.102-3build1) ... 221s Selecting previously unselected package libsub-install-perl. 221s Preparing to unpack .../082-libsub-install-perl_0.929-1_all.deb ... 221s Unpacking libsub-install-perl (0.929-1) ... 221s Selecting previously unselected package libdata-optlist-perl. 221s Preparing to unpack .../083-libdata-optlist-perl_0.114-1_all.deb ... 221s Unpacking libdata-optlist-perl (0.114-1) ... 221s Selecting previously unselected package libnet-domain-tld-perl. 221s Preparing to unpack .../084-libnet-domain-tld-perl_1.75-4_all.deb ... 221s Unpacking libnet-domain-tld-perl (1.75-4) ... 221s Selecting previously unselected package libdata-validate-domain-perl. 221s Preparing to unpack .../085-libdata-validate-domain-perl_0.15-1_all.deb ... 221s Unpacking libdata-validate-domain-perl (0.15-1) ... 222s Selecting previously unselected package libfile-sharedir-perl. 222s Preparing to unpack .../086-libfile-sharedir-perl_1.118-3_all.deb ... 222s Unpacking libfile-sharedir-perl (1.118-3) ... 222s Selecting previously unselected package libnamespace-autoclean-perl. 222s Preparing to unpack .../087-libnamespace-autoclean-perl_0.31-1_all.deb ... 222s Unpacking libnamespace-autoclean-perl (0.31-1) ... 222s Selecting previously unselected package libsub-exporter-perl. 222s Preparing to unpack .../088-libsub-exporter-perl_0.990-1_all.deb ... 222s Unpacking libsub-exporter-perl (0.990-1) ... 222s Selecting previously unselected package libeval-closure-perl. 222s Preparing to unpack .../089-libeval-closure-perl_0.14-3_all.deb ... 222s Unpacking libeval-closure-perl (0.14-3) ... 222s Selecting previously unselected package libdevel-stacktrace-perl. 222s Preparing to unpack .../090-libdevel-stacktrace-perl_2.0500-1_all.deb ... 222s Unpacking libdevel-stacktrace-perl (2.0500-1) ... 222s Selecting previously unselected package libexception-class-perl. 222s Preparing to unpack .../091-libexception-class-perl_1.45-1_all.deb ... 222s Unpacking libexception-class-perl (1.45-1) ... 222s Selecting previously unselected package libparams-validationcompiler-perl. 222s Preparing to unpack .../092-libparams-validationcompiler-perl_0.31-1_all.deb ... 222s Unpacking libparams-validationcompiler-perl (0.31-1) ... 222s Selecting previously unselected package libmro-compat-perl. 222s Preparing to unpack .../093-libmro-compat-perl_0.15-2_all.deb ... 222s Unpacking libmro-compat-perl (0.15-2) ... 222s Selecting previously unselected package librole-tiny-perl. 222s Preparing to unpack .../094-librole-tiny-perl_2.002004-1_all.deb ... 222s Unpacking librole-tiny-perl (2.002004-1) ... 222s Selecting previously unselected package libsub-quote-perl. 222s Preparing to unpack .../095-libsub-quote-perl_2.006008-1ubuntu1_all.deb ... 222s Unpacking libsub-quote-perl (2.006008-1ubuntu1) ... 222s Selecting previously unselected package libxstring-perl:armhf. 222s Preparing to unpack .../096-libxstring-perl_0.005-2build4_armhf.deb ... 222s Unpacking libxstring-perl:armhf (0.005-2build4) ... 222s Selecting previously unselected package libspecio-perl. 222s Preparing to unpack .../097-libspecio-perl_0.50-1_all.deb ... 222s Unpacking libspecio-perl (0.50-1) ... 222s Selecting previously unselected package libdatetime-locale-perl. 222s Preparing to unpack .../098-libdatetime-locale-perl_1%3a1.41-1_all.deb ... 222s Unpacking libdatetime-locale-perl (1:1.41-1) ... 224s Selecting previously unselected package libdatetime-timezone-perl. 224s Preparing to unpack .../099-libdatetime-timezone-perl_1%3a2.65-1+2025b_all.deb ... 224s Unpacking libdatetime-timezone-perl (1:2.65-1+2025b) ... 224s Selecting previously unselected package libdatetime-perl. 224s Preparing to unpack .../100-libdatetime-perl_2%3a1.65-1build3_armhf.deb ... 224s Unpacking libdatetime-perl (2:1.65-1build3) ... 224s Selecting previously unselected package libdatetime-format-rfc3339-perl. 224s Preparing to unpack .../101-libdatetime-format-rfc3339-perl_1.10.0-1_all.deb ... 224s Unpacking libdatetime-format-rfc3339-perl (1.10.0-1) ... 224s Selecting previously unselected package libdevel-cycle-perl. 224s Preparing to unpack .../102-libdevel-cycle-perl_1.12-2_all.deb ... 224s Unpacking libdevel-cycle-perl (1.12-2) ... 224s Selecting previously unselected package libemail-address-xs-perl. 224s Preparing to unpack .../103-libemail-address-xs-perl_1.05-1build5_armhf.deb ... 224s Unpacking libemail-address-xs-perl (1.05-1build5) ... 224s Selecting previously unselected package libexporter-tiny-perl. 224s Preparing to unpack .../104-libexporter-tiny-perl_1.006002-1_all.deb ... 224s Unpacking libexporter-tiny-perl (1.006002-1) ... 224s Selecting previously unselected package libextutils-helpers-perl. 224s Preparing to unpack .../105-libextutils-helpers-perl_0.028-1_all.deb ... 224s Unpacking libextutils-helpers-perl (0.028-1) ... 224s Selecting previously unselected package libextutils-installpaths-perl. 224s Preparing to unpack .../106-libextutils-installpaths-perl_0.014-1_all.deb ... 224s Unpacking libextutils-installpaths-perl (0.014-1) ... 224s Selecting previously unselected package libxs-parse-keyword-perl. 224s Preparing to unpack .../107-libxs-parse-keyword-perl_0.48-2_armhf.deb ... 224s Unpacking libxs-parse-keyword-perl (0.48-2) ... 224s Selecting previously unselected package libsyntax-keyword-try-perl. 224s Preparing to unpack .../108-libsyntax-keyword-try-perl_0.30-1_armhf.deb ... 224s Unpacking libsyntax-keyword-try-perl (0.30-1) ... 224s Selecting previously unselected package libfeature-compat-try-perl. 224s Preparing to unpack .../109-libfeature-compat-try-perl_0.05-1_all.deb ... 224s Unpacking libfeature-compat-try-perl (0.05-1) ... 225s Selecting previously unselected package libfile-chdir-perl. 225s Preparing to unpack .../110-libfile-chdir-perl_0.1008-1.2_all.deb ... 225s Unpacking libfile-chdir-perl (0.1008-1.2) ... 225s Selecting previously unselected package libfile-copy-recursive-perl. 225s Preparing to unpack .../111-libfile-copy-recursive-perl_0.45-4_all.deb ... 225s Unpacking libfile-copy-recursive-perl (0.45-4) ... 225s Selecting previously unselected package libio-stringy-perl. 225s Preparing to unpack .../112-libio-stringy-perl_2.113-2_all.deb ... 225s Unpacking libio-stringy-perl (2.113-2) ... 225s Selecting previously unselected package libparams-validate-perl:armhf. 225s Preparing to unpack .../113-libparams-validate-perl_1.31-2build4_armhf.deb ... 225s Unpacking libparams-validate-perl:armhf (1.31-2build4) ... 225s Selecting previously unselected package libgetopt-long-descriptive-perl. 225s Preparing to unpack .../114-libgetopt-long-descriptive-perl_0.116-2_all.deb ... 225s Unpacking libgetopt-long-descriptive-perl (0.116-2) ... 225s Selecting previously unselected package libsort-versions-perl. 225s Preparing to unpack .../115-libsort-versions-perl_1.62-3_all.deb ... 225s Unpacking libsort-versions-perl (1.62-3) ... 225s Selecting previously unselected package libgit-wrapper-perl. 225s Preparing to unpack .../116-libgit-wrapper-perl_0.048-2_all.deb ... 225s Unpacking libgit-wrapper-perl (0.048-2) ... 225s Selecting previously unselected package libimport-into-perl. 225s Preparing to unpack .../117-libimport-into-perl_1.002005-2_all.deb ... 225s Unpacking libimport-into-perl (1.002005-2) ... 225s Selecting previously unselected package node-popper2. 225s Preparing to unpack .../118-node-popper2_2.11.2-9_all.deb ... 225s Unpacking node-popper2 (2.11.2-9) ... 225s Selecting previously unselected package libjs-bootstrap5. 225s Preparing to unpack .../119-libjs-bootstrap5_5.3.5+dfsg-4_all.deb ... 225s Unpacking libjs-bootstrap5 (5.3.5+dfsg-4) ... 225s Selecting previously unselected package libjs-highlight.js. 225s Preparing to unpack .../120-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 225s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 226s Selecting previously unselected package libjs-popper.js. 226s Preparing to unpack .../121-libjs-popper.js_1.16.1+ds-6_all.deb ... 226s Unpacking libjs-popper.js (1.16.1+ds-6) ... 226s Selecting previously unselected package libjson-perl. 226s Preparing to unpack .../122-libjson-perl_4.10000-1_all.deb ... 226s Unpacking libjson-perl (4.10000-1) ... 226s Selecting previously unselected package libmojolicious-perl. 226s Preparing to unpack .../123-libmojolicious-perl_9.39+dfsg-1_all.deb ... 226s Unpacking libmojolicious-perl (9.39+dfsg-1) ... 226s Selecting previously unselected package libmoo-perl. 226s Preparing to unpack .../124-libmoo-perl_2.005005-1_all.deb ... 226s Unpacking libmoo-perl (2.005005-1) ... 226s Selecting previously unselected package libtype-tiny-perl. 226s Preparing to unpack .../125-libtype-tiny-perl_2.004000-2_all.deb ... 226s Unpacking libtype-tiny-perl (2.004000-2) ... 226s Selecting previously unselected package libmoox-typetiny-perl. 226s Preparing to unpack .../126-libmoox-typetiny-perl_0.002003-4_all.deb ... 226s Unpacking libmoox-typetiny-perl (0.002003-4) ... 226s Selecting previously unselected package libpath-tiny-perl. 226s Preparing to unpack .../127-libpath-tiny-perl_0.148-1_all.deb ... 226s Unpacking libpath-tiny-perl (0.148-1) ... 226s Selecting previously unselected package libref-util-perl. 226s Preparing to unpack .../128-libref-util-perl_0.204-2_all.deb ... 226s Unpacking libref-util-perl (0.204-2) ... 226s Selecting previously unselected package libsafe-isa-perl. 226s Preparing to unpack .../129-libsafe-isa-perl_1.000010-1_all.deb ... 226s Unpacking libsafe-isa-perl (1.000010-1) ... 226s Selecting previously unselected package libstrictures-perl. 226s Preparing to unpack .../130-libstrictures-perl_2.000006-1_all.deb ... 226s Unpacking libstrictures-perl (2.000006-1) ... 226s Selecting previously unselected package libjson-schema-modern-perl. 226s Preparing to unpack .../131-libjson-schema-modern-perl_0.611-1_all.deb ... 226s Unpacking libjson-schema-modern-perl (0.611-1) ... 226s Selecting previously unselected package libmodule-build-tiny-perl. 226s Preparing to unpack .../132-libmodule-build-tiny-perl_0.051-1_all.deb ... 226s Unpacking libmodule-build-tiny-perl (0.051-1) ... 226s Selecting previously unselected package libnet-idn-encode-perl. 226s Preparing to unpack .../133-libnet-idn-encode-perl_2.500-5build1_armhf.deb ... 226s Unpacking libnet-idn-encode-perl (2.500-5build1) ... 227s Selecting previously unselected package libpadwalker-perl. 227s Preparing to unpack .../134-libpadwalker-perl_2.5-1build7_armhf.deb ... 227s Unpacking libpadwalker-perl (2.5-1build7) ... 227s Selecting previously unselected package libref-util-xs-perl. 227s Preparing to unpack .../135-libref-util-xs-perl_0.117-2build5_armhf.deb ... 227s Unpacking libref-util-xs-perl (0.117-2build5) ... 227s Selecting previously unselected package libscope-guard-perl. 227s Preparing to unpack .../136-libscope-guard-perl_0.21-2_all.deb ... 227s Unpacking libscope-guard-perl (0.21-2) ... 227s Selecting previously unselected package libsereal-decoder-perl. 227s Preparing to unpack .../137-libsereal-decoder-perl_5.004+ds-1build5_armhf.deb ... 227s Unpacking libsereal-decoder-perl (5.004+ds-1build5) ... 227s Selecting previously unselected package libsereal-encoder-perl. 227s Preparing to unpack .../138-libsereal-encoder-perl_5.004+ds-1build4_armhf.deb ... 227s Unpacking libsereal-encoder-perl (5.004+ds-1build4) ... 227s Selecting previously unselected package libsereal-perl. 227s Preparing to unpack .../139-libsereal-perl_5.004-1_all.deb ... 227s Unpacking libsereal-perl (5.004-1) ... 227s Selecting previously unselected package libtest-deep-perl. 227s Preparing to unpack .../140-libtest-deep-perl_1.205-1_all.deb ... 227s Unpacking libtest-deep-perl (1.205-1) ... 227s Selecting previously unselected package libtest-deep-unorderedpairs-perl. 227s Preparing to unpack .../141-libtest-deep-unorderedpairs-perl_0.006-3_all.deb ... 227s Unpacking libtest-deep-unorderedpairs-perl (0.006-3) ... 227s Selecting previously unselected package libtest-fatal-perl. 227s Preparing to unpack .../142-libtest-fatal-perl_0.017-2_all.deb ... 227s Unpacking libtest-fatal-perl (0.017-2) ... 227s Selecting previously unselected package libtest-file-sharedir-perl. 227s Preparing to unpack .../143-libtest-file-sharedir-perl_1.001002-2_all.deb ... 227s Unpacking libtest-file-sharedir-perl (1.001002-2) ... 227s Selecting previously unselected package libtest2-suite-perl. 227s Preparing to unpack .../144-libtest2-suite-perl_0.000163-1_all.deb ... 227s Unpacking libtest2-suite-perl (0.000163-1) ... 227s Selecting previously unselected package libtest-json-schema-acceptance-perl. 227s Preparing to unpack .../145-libtest-json-schema-acceptance-perl_1.029-1_all.deb ... 227s Unpacking libtest-json-schema-acceptance-perl (1.029-1) ... 228s Selecting previously unselected package libtest-memory-cycle-perl. 228s Preparing to unpack .../146-libtest-memory-cycle-perl_1.06-2_all.deb ... 228s Unpacking libtest-memory-cycle-perl (1.06-2) ... 228s Selecting previously unselected package libtest-needs-perl. 228s Preparing to unpack .../147-libtest-needs-perl_0.002010-1_all.deb ... 228s Unpacking libtest-needs-perl (0.002010-1) ... 228s Selecting previously unselected package libtest-warnings-perl. 228s Preparing to unpack .../148-libtest-warnings-perl_0.038-1_all.deb ... 228s Unpacking libtest-warnings-perl (0.038-1) ... 228s Selecting previously unselected package libtest-without-module-perl. 228s Preparing to unpack .../149-libtest-without-module-perl_0.23-1_all.deb ... 228s Unpacking libtest-without-module-perl (0.23-1) ... 228s Selecting previously unselected package libtime-moment-perl. 228s Preparing to unpack .../150-libtime-moment-perl_0.44-2build5_armhf.deb ... 228s Unpacking libtime-moment-perl (0.44-2build5) ... 228s Selecting previously unselected package libtype-tiny-xs-perl:armhf. 228s Preparing to unpack .../151-libtype-tiny-xs-perl_0.025-2build1_armhf.deb ... 228s Unpacking libtype-tiny-xs-perl:armhf (0.025-2build1) ... 228s Selecting previously unselected package pkg-perl-autopkgtest. 228s Preparing to unpack .../152-pkg-perl-autopkgtest_0.82_all.deb ... 228s Unpacking pkg-perl-autopkgtest (0.82) ... 228s Setting up javascript-common (12+nmu1) ... 228s Setting up libdevel-cycle-perl (1.12-2) ... 228s Setting up libextutils-config-perl (0.010-1) ... 228s Setting up libsafe-isa-perl (1.000010-1) ... 228s Setting up libextutils-helpers-perl (0.028-1) ... 228s Setting up libclass-inspector-perl (1.36-3) ... 228s Setting up libtest-without-module-perl (0.23-1) ... 228s Setting up libdynaloader-functions-perl (0.004-2) ... 228s Setting up libtest-deep-perl (1.205-1) ... 228s Setting up libclass-method-modifiers-perl (2.15-1) ... 228s Setting up libref-util-xs-perl (0.117-2build5) ... 228s Setting up libjs-popper.js (1.16.1+ds-6) ... 228s Setting up libnet-idn-encode-perl (2.500-5build1) ... 228s Setting up libclone-perl:armhf (0.47-1) ... 228s Setting up libarchive-zip-perl (1.68-1) ... 228s Setting up libsub-identify-perl (0.14-3build4) ... 228s Setting up libcpanel-json-xs-perl:armhf (4.39-2) ... 228s Setting up libextutils-installpaths-perl (0.014-1) ... 228s Setting up libio-stringy-perl (2.113-2) ... 228s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 228s Setting up libtry-tiny-perl (0.32-1) ... 228s Setting up libtest-warnings-perl (0.038-1) ... 228s Setting up libtest-fatal-perl (0.017-2) ... 228s Setting up libextutils-hascompiler-perl (0.025-1) ... 228s Setting up libcurl3t64-gnutls:armhf (8.14.1-2ubuntu1) ... 228s Setting up linux-libc-dev:armhf (6.17.0-5.5) ... 228s Setting up m4 (1.4.19-8) ... 228s Setting up libclass-singleton-perl (1.6-2) ... 228s Setting up libtime-moment-perl (0.44-2build5) ... 228s Setting up libpadwalker-perl (2.5-1build7) ... 228s Setting up libcpan-requirements-dynamic-perl (0.002-1) ... 228s Setting up libxstring-perl:armhf (0.005-2build4) ... 228s Setting up libgomp1:armhf (15.2.0-5ubuntu1) ... 228s Setting up libsereal-encoder-perl (5.004+ds-1build4) ... 228s Setting up libsub-install-perl (0.929-1) ... 228s Setting up libtest2-suite-perl (0.000163-1) ... 228s Setting up libdw1t64:armhf (0.193-3) ... 228s Setting up libtest-needs-perl (0.002010-1) ... 228s Setting up libscope-guard-perl (0.21-2) ... 228s Setting up libfile-copy-recursive-perl (0.45-4) ... 228s Setting up liberror-perl (0.17030-1) ... 228s Setting up libautovivification-perl:armhf (0.18-2build5) ... 228s Setting up libtest-memory-cycle-perl (1.06-2) ... 228s Setting up autotools-dev (20240727.1) ... 228s Setting up libclass-data-inheritable-perl (0.10-1) ... 228s Setting up libalgorithm-c3-perl (0.11-2) ... 228s Setting up rpcsvc-proto (1.4.3-1) ... 228s Setting up libclass-tiny-perl (1.008-2) ... 228s Setting up libtest-deep-unorderedpairs-perl (0.006-3) ... 228s Setting up libref-util-perl (0.204-2) ... 228s Setting up libnet-domain-tld-perl (1.75-4) ... 228s Setting up libmpc3:armhf (1.3.1-1build3) ... 228s Setting up libvariable-magic-perl (0.64-1build1) ... 228s Setting up autopoint (0.23.1-2build2) ... 228s Setting up libb-hooks-op-check-perl:armhf (0.22-3build2) ... 228s Setting up libparams-util-perl (1.102-3build1) ... 228s Setting up autoconf (2.72-3.1ubuntu1) ... 228s Setting up libsub-exporter-progressive-perl (0.001013-3) ... 228s Setting up libubsan1:armhf (15.2.0-5ubuntu1) ... 228s Setting up libsub-name-perl:armhf (0.28-1) ... 228s Setting up libtype-tiny-xs-perl:armhf (0.025-2build1) ... 228s Setting up dwz (0.16-2) ... 228s Setting up libdata-validate-domain-perl (0.15-1) ... 228s Setting up libcpan-meta-check-perl (0.018-1) ... 228s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 228s Setting up libfile-chdir-perl (0.1008-1.2) ... 228s Setting up node-popper2 (2.11.2-9) ... 228s Setting up libcrypt-dev:armhf (1:4.4.38-1build1) ... 228s Setting up libpath-tiny-perl (0.148-1) ... 228s Setting up libasan8:armhf (15.2.0-5ubuntu1) ... 228s Setting up libjson-perl (4.10000-1) ... 228s Setting up librole-tiny-perl (2.002004-1) ... 228s Setting up debugedit (1:5.2-3) ... 228s Setting up libfile-sharedir-perl (1.118-3) ... 228s Setting up git-man (1:2.51.0-1ubuntu1) ... 228s Setting up libstrictures-perl (2.000006-1) ... 228s Setting up libsub-quote-perl (2.006008-1ubuntu1) ... 228s Setting up libdevel-stacktrace-perl (2.0500-1) ... 228s Setting up libclass-xsaccessor-perl (1.19-4build6) ... 228s Setting up libsort-versions-perl (1.62-3) ... 228s Setting up libexporter-tiny-perl (1.006002-1) ... 228s Setting up libisl23:armhf (0.27-1) ... 228s Setting up libc-dev-bin (2.42-0ubuntu3) ... 228s Setting up libjs-bootstrap5 (5.3.5+dfsg-4) ... 228s Setting up cpp-15-arm-linux-gnueabihf (15.2.0-5ubuntu1) ... 228s Setting up libsereal-decoder-perl (5.004+ds-1build5) ... 228s Setting up libcc1-0:armhf (15.2.0-5ubuntu1) ... 228s Setting up cpp-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 228s Setting up dctrl-tools (2.24-3build3) ... 228s Setting up autodep8 (0.30) ... 228s Setting up libemail-address-xs-perl (1.05-1build5) ... 228s Setting up automake (1:1.17-4ubuntu1) ... 228s update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode 228s Setting up libmodule-build-tiny-perl (0.051-1) ... 228s Setting up libfile-stripnondeterminism-perl (1.14.2-1) ... 228s Setting up gettext (0.23.1-2build2) ... 228s Setting up libgcc-15-dev:armhf (15.2.0-5ubuntu1) ... 228s Setting up gcc-15-arm-linux-gnueabihf (15.2.0-5ubuntu1) ... 228s Setting up libmojolicious-perl (9.39+dfsg-1) ... 228s Setting up libtype-tiny-perl (2.004000-2) ... 228s Setting up libsereal-perl (5.004-1) ... 228s Setting up libexception-class-perl (1.45-1) ... 228s Setting up libclass-c3-perl (0.35-2) ... 228s Setting up libdevel-callchecker-perl:armhf (0.009-2) ... 228s Setting up intltool-debian (0.35.0+20060710.6) ... 228s Setting up libxs-parse-keyword-perl (0.48-2) ... 228s Setting up libtest-file-sharedir-perl (1.001002-2) ... 228s Setting up libdata-optlist-perl (0.114-1) ... 228s Setting up git (1:2.51.0-1ubuntu1) ... 228s Setting up pkg-perl-autopkgtest (0.82) ... 228s Setting up dh-strip-nondeterminism (1.14.2-1) ... 228s Setting up libsyntax-keyword-try-perl (0.30-1) ... 228s Setting up cpp-15 (15.2.0-5ubuntu1) ... 228s Setting up cpp (4:15.2.0-4ubuntu1) ... 228s Setting up libgit-wrapper-perl (0.048-2) ... 228s Setting up libc6-dev:armhf (2.42-0ubuntu3) ... 228s Setting up libmro-compat-perl (0.15-2) ... 228s Setting up libsub-exporter-perl (0.990-1) ... 228s Setting up libeval-closure-perl (0.14-3) ... 228s Setting up gcc-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 228s Setting up libparams-validationcompiler-perl (0.31-1) ... 228s Setting up libfeature-compat-try-perl (0.05-1) ... 228s Setting up po-debconf (1.0.21+nmu1) ... 228s Setting up libparams-classify-perl:armhf (0.015-2build6) ... 228s Setting up gcc-15 (15.2.0-5ubuntu1) ... 228s Setting up libstdc++-15-dev:armhf (15.2.0-5ubuntu1) ... 228s Setting up libmodule-runtime-perl (0.018-1) ... 228s Setting up libtool (2.5.4-4build1) ... 228s Setting up libmodule-implementation-perl (0.09-2) ... 228s Setting up libpackage-stash-perl (0.40-1) ... 228s Setting up libimport-into-perl (1.002005-2) ... 228s Setting up libmoo-perl (2.005005-1) ... 228s Setting up g++-15-arm-linux-gnueabihf (15.2.0-5ubuntu1) ... 228s Setting up gcc (4:15.2.0-4ubuntu1) ... 228s Setting up dh-autoreconf (21) ... 228s Setting up libspecio-perl (0.50-1) ... 228s Setting up libmoox-typetiny-perl (0.002003-4) ... 228s Setting up libparams-validate-perl:armhf (1.31-2build4) ... 228s Setting up libb-hooks-endofscope-perl (0.28-2) ... 228s Setting up g++-15 (15.2.0-5ubuntu1) ... 228s Setting up g++-arm-linux-gnueabihf (4:15.2.0-4ubuntu1) ... 228s Setting up debhelper (13.24.2ubuntu1) ... 228s Setting up libnamespace-clean-perl (0.27-2) ... 228s Setting up libbuiltin-compat-perl (0.003003-2) ... 228s Setting up libgetopt-long-descriptive-perl (0.116-2) ... 228s Setting up g++ (4:15.2.0-4ubuntu1) ... 228s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 228s Setting up libtest-json-schema-acceptance-perl (1.029-1) ... 228s Setting up build-essential (12.12ubuntu1) ... 228s Setting up libnamespace-autoclean-perl (0.31-1) ... 228s Setting up libdatetime-locale-perl (1:1.41-1) ... 228s Setting up libdatetime-timezone-perl (1:2.65-1+2025b) ... 228s Setting up libjson-schema-modern-perl (0.611-1) ... 228s Setting up libdatetime-perl (2:1.65-1build3) ... 228s Setting up libdatetime-format-rfc3339-perl (1.10.0-1) ... 228s Processing triggers for install-info (7.1.1-1ubuntu1) ... 229s Processing triggers for libc-bin (2.42-0ubuntu3) ... 229s Processing triggers for man-db (2.13.1-1) ... 239s autopkgtest [15:10:16]: test autodep8-perl-build-deps: /usr/share/pkg-perl-autopkgtest/runner build-deps 239s autopkgtest [15:10:16]: test autodep8-perl-build-deps: [----------------------- 242s t/00-report-prereqs.t ................... 242s 1..1 242s # 242s # Versions for all modules listed in static metadata (including optional ones): 242s # 242s # === Configure Requires === 242s # 242s # Module Want Have 242s # ------------------- ----- -------- 242s # Module::Build::Tiny 0.034 0.051 242s # perl 5.020 5.040001 242s # 242s # === Test Requires === 242s # 242s # Module Want Have 242s # ------------------------------ -------- -------- 242s # CPAN::Meta::Check 0.011 0.018 242s # CPAN::Meta::Requirements any 2.143 242s # Data::Dumper any 2.189 242s # File::Spec any 3.91 242s # Math::BigInt 1.999701 2.003002 242s # Module::Metadata any 1.000038 242s # Term::ANSIColor any 5.01 242s # Test2::API any 1.302199 242s # Test::Deep any 1.205 242s # Test::Deep::UnorderedPairs any 0.006 242s # Test::Fatal any 0.017 242s # Test::File::ShareDir any 1.001002 242s # Test::JSON::Schema::Acceptance 1.021 1.029 242s # Test::Memory::Cycle any 1.06 242s # Test::More 0.96 1.302199 242s # Test::Needs any 0.002010 242s # Test::Warnings any 0.038 242s # Test::Without::Module 0.19 0.23 242s # lib any 0.65 242s # perl v5.20.0 5.040001 242s # utf8 any 1.25 242s # 242s # === Test Recommends === 242s # 242s # Module Want Have 242s # ---------- -------- -------- 242s # CPAN::Meta 2.120900 2.150010 242s # 242s # === Runtime Requires === 242s # 242s # Module Want Have 242s # ------------------------- -------- -------- 242s # B any 1.89 242s # Carp any 1.54 242s # Cpanel::JSON::XS 4.38 4.39 242s # Digest::MD5 any 2.58_01 242s # Exporter any 5.78 242s # Feature::Compat::Try any 0.05 242s # File::ShareDir any 1.118 242s # Getopt::Long::Descriptive any 0.116 242s # JSON::PP 4.11 4.16 242s # List::Util 1.55 1.63 242s # MIME::Base64 any 3.16_01 242s # Math::BigFloat any 2.003002 242s # Math::BigInt 1.999701 2.003002 242s # Mojo::JSON any undef 242s # Mojo::JSON::Pointer any undef 242s # Mojo::Message::Response any undef 242s # Mojo::URL any undef 242s # Mojolicious 7.87 9.39 242s # Moo any 2.005005 242s # Moo::Role any 2.005005 242s # MooX::TypeTiny 0.002002 0.002003 242s # Path::Tiny any 0.148 242s # Ref::Util 0.100 0.204 242s # Safe::Isa 1.000008 1.000010 242s # Scalar::Util any 1.63 242s # Storable any 3.32 242s # Sub::Install any 0.929 242s # Types::Common::Numeric any 2.004000 242s # Types::Standard 1.016003 2.004000 242s # autovivification any 0.18 242s # builtin::compat 0.003003 0.003003 242s # constant any 1.33 242s # experimental 0.026 0.032 242s # feature any 1.89 242s # if any 0.0610 242s # namespace::clean any 0.27 242s # open any 1.13 242s # overload any 1.37 242s # perl v5.20.0 5.040001 242s # stable 0.031 0.033 242s # strict any 1.13 242s # strictures 2 2.000006 242s # warnings any 1.70 242s # 242s # === Runtime Suggests === 242s # 242s # Module Want Have 242s # ------------------------- ---- ------- 242s # Class::XSAccessor any 1.19 242s # Data::Validate::Domain 0.13 0.15 242s # DateTime::Format::RFC3339 any v1.10.0 242s # Email::Address::XS 1.04 1.05 242s # Net::IDN::Encode any 2.500 242s # Ref::Util::XS any 0.117 242s # Sereal any 5.004 242s # Time::Moment any 0.44 242s # Type::Tiny::XS any 0.025 242s # 242s # === Other Modules === 242s # 242s # Module Have 242s # ----------------- -------- 242s # Cpanel::JSON::XS 4.39 242s # Encode 3.21 242s # File::Temp 0.2311 242s # JSON::PP 4.16 242s # JSON::XS missing 242s # Math::BigFloat 2.003002 242s # Math::BigInt 2.003002 242s # Module::Runtime 0.018 242s # Mojolicious 9.39 242s # Sereal::Decoder 5.004 242s # Sereal::Encoder 5.004 242s # Sub::Name 0.28 242s # YAML missing 242s # autodie 2.37 242s # builtin 0.014 242s # builtin::Backport missing 242s # 242s ok 1 - Reported prereqs 242s ok 243s t/add-schema.t .......................... 243s # Subtest: evaluate a document 243s ok 1 - evaluate a Document object 243s ok 2 - resource index from the document is copied to the main object 243s ok 3 - evaluate a Document object again without error 243s 1..3 243s ok 1 - evaluate a document 243s # Subtest: evaluate a uri 243s ok 1 - evaluate with a uri that is not yet loaded 243s ok 2 - the metaschema is now loaded and its resources are indexed 243s ok 3 - evaluate against the metaschema again 243s ok 4 - evaluate against the a subschema of the metaschema 243s ok 5 - evaluate against the a fragment of the metaschema that does not exist 243s ok 6 - evaluate against the a plain-name fragment of the metaschema that does not exist 243s 1..6 243s ok 2 - evaluate a uri 243s # Subtest: add a uri resource 243s ok 1 - ->get in scalar context on a URI to the head of a document 243s ok 2 - get() did not return a reference to the original data 243s ok 3 - ->get in list context on a URI to the head of a document 243s ok 4 - ->get in scalar context on a URI to inside of a document 243s ok 5 - ->get in list context on a URI to inside of a document 243s 1..5 243s ok 3 - add a uri resource 243s # Subtest: add a schema associated with a uri 243s ok 1 - cannot use a uri with a fragment 243s ok 2 - added the schema data with an associated uri; the document does not see the overridden uri 243s ok 3 - can now evaluate using a uri to a subschema of a resource we loaded earlier 243s ok 4 - can also evaluate using a non-canonical uri 243s ok 5 - can add the same document and associate it with another schema 243s ok 6 - can add the same document twice, using deprecated interface 243s ok 7 - warned when using deprecated form of add_schema 243s ok 8 - can add the same document again with the proper interface 243s ok 9 - now the document is available as all three uris, with the same canonical_uri 243s 1..9 243s ok 4 - add a schema associated with a uri 243s # Subtest: multiple anonymous schemas 243s ok 1 - evaluate an anonymous schema 243s ok 2 - one resource is indexed 243s ok 3 - evaluate another anonymous schema 243s ok 4 - still only one resource is indexed 243s 1..4 243s ok 5 - multiple anonymous schemas 243s # Subtest: add a document without associating it with a uri 243s ok 1 - added the document without an associated uri 243s ok 2 - document only added under its canonical uri 243s 1..2 243s ok 6 - add a document without associating it with a uri 243s # Subtest: add a schema without a uri 243s ok 1 - added the schema data without an associated uri 243s ok 2 - document only added under its canonical uri 243s 1..2 243s ok 7 - add a schema without a uri 243s # Subtest: $ref to non-canonical uri 243s ok 1 - errors use the canonical uri, not the uri used to evaluate against 243s ok 2 - non-canonical uri is not used to resolve inner $id keywords 243s ok 3 - the canonical uri is updated when use the canonical uri, not the uri used to evaluate against 243s ok 4 - canonical_uri is not always what was in the $ref, even when no local $id is present 243s ok 5 - canonical_uri fragment also needs to be adjusted 243s ok 6 - canonical_uri starts out containing a fragment and can be appended to during traversal 243s 1..6 243s ok 8 - $ref to non-canonical uri 243s # Subtest: register a document against multiple uris, with absolute root uri 243s ok 1 - identifiers stored for the document 243s ok 2 - resource index from the document is copied to the main object 243s ok 3 - add a secondary uri for the same document 243s ok 4 - secondary uri not also added to the document 243s ok 5 - cannot call add_schema with the same URI as for another schema 243s ok 6 - cannot reuse the same $id in another document 243s ok 7 - resource index remains unchanged after erroneous add_schema calls 243s ok 8 - adding the same schema content again is permitted 243s ok 9 - ->get in scalar context for a nonexistent resource returns undef 243s ok 10 - ->get in list context for a nonexistent resource returns empty list 243s 1..10 243s ok 9 - register a document against multiple uris, with absolute root uri 243s # Subtest: register a document against multiple uris, with relative root uri 243s ok 1 - identifiers stored for the document 243s ok 2 - resource index from the document is copied to the main object 243s ok 3 - add a secondary (absolute) uri for the same document 243s ok 4 - secondary uri not also added to the document 243s ok 5 - cannot call add_schema with the same URI as for another schema 243s ok 6 - cannot reuse the same $id in another document 243s ok 7 - resource index remains unchanged after erroneous add_schema calls 243s ok 8 - adding the same schema content again is permitted 243s 1..8 243s ok 10 - register a document against multiple uris, with relative root uri 243s # Subtest: register a document against multiple uris, with no root uri 243s ok 1 - identifiers stored for the document 243s ok 2 - resource index from the document is copied to the main object 243s ok 3 - add a secondary (absolute) uri for the same document 243s ok 4 - secondary uri not also added to the document 243s ok 5 - cannot call add_schema with the same URI as for another schema 243s ok 6 - cannot reuse the same $id in another document 243s ok 7 - resource index remains unchanged after erroneous add_schema calls 243s ok 8 - adding the same schema content again is permitted 243s 1..8 243s ok 11 - register a document against multiple uris, with no root uri 243s # Subtest: external resource with externally-supplied uri; main resource with multiple uris 243s ok 1 - all uris in result are correct, using secondary uri as the target 243s ok 2 - all uris in result are correct, using main uri as the target 243s 1..2 243s ok 12 - external resource with externally-supplied uri; main resource with multiple uris 243s # Subtest: document with no canonical URI, but assigned a URI through add_schema 243s ok 1 - evaluate a schema referencing a document given an ad-hoc uri 243s ok 2 - adding a uri to an existing document does not change its canonical uri 243s 1..2 243s ok 13 - document with no canonical URI, but assigned a URI through add_schema 243s 1..13 243s ok 254s t/additional-tests-draft2019-09.t ....... 254s # 254s # AUTHOR_TESTING: 254s # AUTOMATED_TESTING: 1 254s # EXTENDED_TESTING: 254s # NO_TODO: 254s # TEST_DIR: 254s # NO_SHORT_CIRCUIT: 254s # 254s # running tests in /tmp/autopkgtest.Ge9z6k/autopkgtest_tmp/smokewgxowV/t/additional-tests-draft2019-09 against draft2019-09... 254s # 254s ok 1 - anchor.json: "non-schema object containing an $anchor property" - "skip traversing definition for a valid result" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 2 - anchor.json: "non-schema object containing an $anchor property" - "const at const_not_anchor does not match" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 254s # "error": "value does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/else/$ref/const" 254s # }, 254s # { 254s # "error": "subschema is not valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/else" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 254s # "error": "value does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/else/$ref/const" 254s # }, 254s # { 254s # "error": "subschema is not valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/else" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 3 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "properties evaluated from allOf" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 4 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "extra property" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/bar", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/bar", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 5 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "properties evaluated from additionalProperties" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 6 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "extra property" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/bar", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/bar", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 7 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "properties evaluated from allOf, but unevaluated is buried" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/foo", 254s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "no subschemas are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/foo", 254s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "no subschemas are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 8 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "no properties" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 9 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "properties evaluated from additionalProperties, but unevaluated is buried" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/foo", 254s # "keywordLocation": "/allOf/0/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/allOf/0/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "subschema 0 is not valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/allOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/foo", 254s # "keywordLocation": "/allOf/0/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/allOf/0/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "subschema 0 is not valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/allOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 10 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "no properties" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 11 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 12 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/not" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/not" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 13 - badRef.json: "good references in schemas" - "this data is never used" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 14 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "$ref value is not a valid URI reference", 254s # "instanceLocation": "", 254s # "keywordLocation": "/then/$ref" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "$ref value is not a valid URI reference", 254s # "instanceLocation": "", 254s # "keywordLocation": "/then/$ref" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 15 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "$ref value is not a valid URI reference", 254s # "instanceLocation": "", 254s # "keywordLocation": "/then/$ref" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "$ref value is not a valid URI reference", 254s # "instanceLocation": "", 254s # "keywordLocation": "/then/$ref" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 16 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 17 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 254s # "error": "got string, not integer", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf/0/type" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 254s # "error": "got string, not integer", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf/1/type" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 254s # "error": "value does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf/2/const" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 254s # "error": "value does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf/3/enum" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 254s # "error": "no subschemas are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 254s # "error": "got string, not integer", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf/0/type" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 254s # "error": "got string, not integer", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf/1/type" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 254s # "error": "value does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf/2/const" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 254s # "error": "value does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf/3/enum" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 254s # "error": "no subschemas are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/anyOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 18 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 19 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 20 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid date-time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid date-time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 21 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid date-time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid date-time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 22 - format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid date string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid date string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 23 - format-duration.json: "validation of duration strings" - "years and months can appear without days" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 24 - format-duration.json: "validation of duration strings" - "months and days can appear without years" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 25 - format-duration.json: "validation of duration strings" - "hours and minutes can appear without seconds" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 26 - format-duration.json: "validation of duration strings" - "minutes and seconds can appear without hour" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 27 - format-duration.json: "validation of duration strings" - "elements may be omitted if their value is zero" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 28 - format-duration.json: "validation of duration strings" - "half a year duration, with full stop decimal point" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 29 - format-duration.json: "validation of duration strings" - "half a year duration, with comma decimal point" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 30 - format-duration.json: "validation of duration strings" - "only one unit can have a non-integer quantity" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid duration string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid duration string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 31 - format-duration.json: "validation of duration strings" - "only the smallest unit can have a non-integer quantity" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid duration string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid duration string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 32 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv4 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv4 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 33 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv4 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv4 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 34 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 35 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv4 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv4 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 36 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 37 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 38 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 39 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 40 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 41 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 42 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 43 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 44 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 45 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 46 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 47 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 48 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv6 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv6 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 49 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv6 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv6 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 50 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv6 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv6 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 51 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv6 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv6 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 52 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv6 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid ipv6 string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 53 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 54 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 55 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 56 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 57 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid relative-json-pointer string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid relative-json-pointer string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 58 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid relative-json-pointer string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid relative-json-pointer string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 59 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid relative-json-pointer string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid relative-json-pointer string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 60 - format-time.json: "validation of time strings" - "valid leap second, Zulu" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 61 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 62 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 63 - format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 64 - format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 65 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 66 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 67 - format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 68 - format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 69 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 70 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 71 - format-time.json: "validation of time strings" - "no time offset" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 72 - format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "not a valid time string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 73 - formats.json: "format validation after a $ref" - "invalid duration" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "#/$defs/my_format/format", 254s # "error": "not a valid duration string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$ref/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "#/$defs/my_format/format", 254s # "error": "not a valid duration string", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$ref/format" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 74 - formats.json: "format validation after a $ref" - "valid duration" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 75 - formats.json: "format validation after an $id" - "invalid duration" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 254s # "error": "not a valid duration string", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/allOf/0/format" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "bloop#/allOf", 254s # "error": "subschema 0 is not valid", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/allOf" 254s # }, 254s # { 254s # "error": "subschema is not valid against all items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 254s # "error": "not a valid duration string", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/allOf/0/format" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "bloop#/allOf", 254s # "error": "subschema 0 is not valid", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/allOf" 254s # }, 254s # { 254s # "error": "subschema is not valid against all items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 76 - formats.json: "format validation after an $id" - "valid duration" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s # 254s ok 77 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 78 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 254s # "error": "value does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/else/$ref/const" 254s # }, 254s # { 254s # "error": "subschema is not valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/else" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 254s # "error": "value does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/else/$ref/const" 254s # }, 254s # { 254s # "error": "subschema is not valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/else" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 79 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "$id cannot be empty", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$id" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "$id cannot be empty", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$id" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 80 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "$id cannot be empty", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$id" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "$id cannot be empty", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$id" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 81 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "$id cannot be empty", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$id" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "$id cannot be empty", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$id" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 82 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "$id cannot be empty", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$id" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "$id cannot be empty", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$id" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 83 - integers.json: "type checks" - "beyond int64 lower boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 84 - integers.json: "type checks" - "int64 lower boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 85 - integers.json: "type checks" - "beyond int32 lower boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 86 - integers.json: "type checks" - "int32 lower boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 87 - integers.json: "type checks" - "zero" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 88 - integers.json: "type checks" - "int32 upper boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 89 - integers.json: "type checks" - "beyond int32 upper boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 90 - integers.json: "type checks" - "upper int64 boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 91 - integers.json: "type checks" - "beyond int64 upper boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 92 - integers.json: "int32 range checks" - "beyond lower boundary" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than -2147483648", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than -2147483648", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 93 - integers.json: "int32 range checks" - "lower boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 94 - integers.json: "int32 range checks" - "zero" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 95 - integers.json: "int32 range checks" - "upper boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 96 - integers.json: "int32 range checks" - "beyond upper boundary" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2147483647", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2147483647", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 97 - integers.json: "int64 range checks" - "beyond lower boundary" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than -9223372036854775808", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than -9223372036854775808", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 98 - integers.json: "int64 range checks" - "lower boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 99 - integers.json: "int64 range checks" - "zero" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 100 - integers.json: "int64 range checks" - "upper boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 101 - integers.json: "int64 range checks" - "beyond upper boundary" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 9223372036854775807", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 9223372036854775807", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 102 - integers.json: "equality checks" - "beyond int64 lower boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 103 - integers.json: "equality checks" - "int64 lower boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 104 - integers.json: "equality checks" - "beyond int32 lower boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 105 - integers.json: "equality checks" - "int32 lower boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 106 - integers.json: "equality checks" - "zero" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 107 - integers.json: "equality checks" - "one" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/enum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/enum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 108 - integers.json: "equality checks" - "int32 upper boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 109 - integers.json: "equality checks" - "beyond int32 upper boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 110 - integers.json: "equality checks" - "int64 upper boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 111 - integers.json: "equality checks" - "beyond int64 upper boundary" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s # 254s ok 112 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 113 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 114 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 115 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 116 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 117 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 118 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 119 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 120 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 121 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 122 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 123 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 124 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 125 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 126 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 127 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 128 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 129 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 130 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 131 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 132 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 133 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 134 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 135 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 136 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 137 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 138 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 139 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 140 - keyword-independence.json: "items + maximum" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 141 - keyword-independence.json: "items + maximum" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 142 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 143 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 144 - keyword-independence.json: "items + minimum" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 145 - keyword-independence.json: "items + minimum" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 146 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 147 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 148 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 149 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 150 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 151 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 152 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 153 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 154 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 155 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 156 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 157 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 158 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 159 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 160 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 161 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 162 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 163 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 164 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 165 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 166 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 167 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 168 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 169 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 170 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 171 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 172 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 173 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 174 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 175 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 176 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 177 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 178 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 179 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 180 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 181 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 182 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 183 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 184 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 185 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 186 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 187 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 188 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 189 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 190 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 191 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 192 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 193 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 194 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 195 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 196 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 197 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 198 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 199 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 200 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 201 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 202 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 203 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 204 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 205 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 206 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 207 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 208 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 209 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 210 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 211 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 212 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 213 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 214 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 215 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 216 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 217 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 218 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 219 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 220 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 221 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 222 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 223 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 224 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 225 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 226 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 227 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 228 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 229 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 230 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 231 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 232 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 233 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 234 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 235 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 236 - keyword-independence.json: "contains + dependentRequired" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 237 - keyword-independence.json: "contains + dependentRequired" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 238 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 239 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 240 - keyword-independence.json: "contains + dependentSchemas" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 241 - keyword-independence.json: "contains + dependentSchemas" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 242 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 243 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 244 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 245 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 246 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 247 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 248 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 249 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 250 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 251 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 252 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 253 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 254 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 255 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 256 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 257 - keyword-independence.json: "contains + properties" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 258 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 259 - keyword-independence.json: "contains + properties" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 260 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 261 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 262 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 263 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 264 - keyword-independence.json: "contains + required" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 265 - keyword-independence.json: "contains + required" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 266 - keyword-independence.json: "contains + required" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 267 - keyword-independence.json: "contains + required" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 268 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 269 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 270 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 271 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 272 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 273 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 274 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 275 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 276 - keyword-independence.json: "dependentRequired + items" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 277 - keyword-independence.json: "dependentRequired + items" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 278 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 279 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 280 - keyword-independence.json: "dependentSchemas + items" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 281 - keyword-independence.json: "dependentSchemas + items" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 282 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 283 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 284 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 285 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 286 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 287 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 288 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 289 - keyword-independence.json: "items + minProperties" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 290 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 291 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 292 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 293 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 294 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 295 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 296 - keyword-independence.json: "items + properties" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 297 - keyword-independence.json: "items + properties" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 298 - keyword-independence.json: "items + properties" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 299 - keyword-independence.json: "items + properties" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 300 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 301 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 302 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 303 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 304 - keyword-independence.json: "items + required" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 305 - keyword-independence.json: "items + required" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 306 - keyword-independence.json: "items + required" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 307 - keyword-independence.json: "items + required" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 308 - keyword-independence.json: "items + unevaluatedProperties" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 309 - keyword-independence.json: "items + unevaluatedProperties" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 310 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 311 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 312 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 313 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 314 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 315 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 316 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 317 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 318 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 319 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 320 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 321 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 322 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 323 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 324 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 325 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 326 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 327 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 328 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 329 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 330 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 331 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 332 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 333 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 334 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 335 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 336 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 337 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 338 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 339 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 340 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 341 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 342 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 343 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 344 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 345 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 346 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 347 - keyword-independence.json: "maxItems + required" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 348 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 349 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 350 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 351 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 352 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 353 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 354 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 355 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 356 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 357 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 358 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 359 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 360 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 361 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 362 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 363 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 364 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 365 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 366 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 367 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 368 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 369 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 370 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 371 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 372 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 373 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 374 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 375 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 376 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 377 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 378 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 379 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 380 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 381 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 382 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 383 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 384 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 385 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 386 - keyword-independence.json: "minItems + required" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 387 - keyword-independence.json: "minItems + required" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 388 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 389 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 390 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 391 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 392 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 393 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 394 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 395 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 396 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 397 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 398 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 399 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 400 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 401 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 402 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 403 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 404 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 405 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 406 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 407 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 408 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 409 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 410 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 411 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 412 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 413 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 414 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 415 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 416 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 417 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 418 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 419 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 420 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 421 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 422 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 423 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 424 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 425 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 426 - keyword-independence.json: "required + unevaluatedItems" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 427 - keyword-independence.json: "required + unevaluatedItems" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 428 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 429 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 430 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 431 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 432 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 433 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 434 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 435 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 436 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 437 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 438 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 439 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 440 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 441 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 442 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 443 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 444 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 445 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 446 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 447 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 448 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 449 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 450 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 451 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 452 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 453 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 454 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 455 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 456 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 457 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 458 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 459 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 460 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 461 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 462 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 463 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 464 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 465 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 466 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 467 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 468 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 469 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 470 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 471 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 472 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 473 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 474 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 475 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 476 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 477 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 478 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 479 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 480 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is not valid against any item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/contains" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 481 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 482 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 483 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 484 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 485 - keyword-independence.json: "items + maxLength" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 486 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 487 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 488 - keyword-independence.json: "items + minLength" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 489 - keyword-independence.json: "items + minLength" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 490 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 491 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 492 - keyword-independence.json: "items + pattern" - "array, items invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/items/0" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 493 - keyword-independence.json: "items + pattern" - "array, items valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 494 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 495 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 496 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 497 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 498 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 499 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 500 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 501 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 502 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 503 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 504 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has more than 1 item", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 505 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 506 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 507 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 508 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 509 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 510 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 511 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 512 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 513 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 514 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 515 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 516 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "array has fewer than 2 items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 517 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 518 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 519 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 520 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 521 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 522 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 523 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 524 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 525 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 526 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 527 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 528 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional item not permitted", 254s # "instanceLocation": "/0", 254s # "keywordLocation": "/unevaluatedItems" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 529 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 530 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 531 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 532 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 533 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 534 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 535 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 536 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 537 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 538 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 539 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 540 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "items at indices 0 and 1 are not unique", 254s # "instanceLocation": "", 254s # "keywordLocation": "/uniqueItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 541 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 542 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 543 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 544 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 545 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 546 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 547 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 548 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 549 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 550 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 551 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 552 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 553 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 554 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 555 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 556 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 557 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 558 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 559 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 560 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 561 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 562 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 563 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 564 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 565 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 566 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 567 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 568 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 569 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 570 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 571 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 572 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 573 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 574 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 575 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 576 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 577 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 578 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 579 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 580 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 581 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 582 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 583 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 584 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 585 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 586 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 587 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 588 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 589 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 590 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 591 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 592 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 593 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 594 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 595 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 596 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 597 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 598 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 599 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 600 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 601 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 602 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 603 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 604 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 605 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 606 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 607 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 608 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 609 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 610 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 611 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 612 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 613 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 614 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 615 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 616 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 617 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 618 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 619 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 620 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 621 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 622 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 623 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 624 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 625 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 626 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 627 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 628 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 629 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 630 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 631 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 632 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 633 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 634 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 635 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 636 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 637 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 638 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 639 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 640 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 641 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 642 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 643 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 644 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 645 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 646 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 647 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 648 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 649 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 650 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 651 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 652 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 653 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 654 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 655 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 656 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 657 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 658 - keyword-independence.json: "maximum + required" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 659 - keyword-independence.json: "maximum + required" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 660 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 661 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 662 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 663 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 664 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 665 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 666 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 667 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 668 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 669 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 670 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 671 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 672 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 673 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 674 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 675 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 676 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 677 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 678 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 679 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 680 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 681 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 682 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 683 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 684 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 685 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 686 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 687 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 688 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 689 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 690 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 691 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 692 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 693 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 694 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 695 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 696 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 697 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 698 - keyword-independence.json: "minimum + required" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 699 - keyword-independence.json: "minimum + required" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 700 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 701 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 702 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 703 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 704 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 705 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 706 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 707 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 708 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 709 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 710 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 711 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 712 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 713 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 714 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 715 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 716 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 717 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 718 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 719 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 720 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 721 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 722 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 723 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 724 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 725 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 726 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 727 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 728 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 729 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 730 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 731 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 732 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 733 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 734 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 735 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 736 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 737 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 738 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 739 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 740 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 741 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 742 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 743 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 744 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 745 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 746 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 747 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 748 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 749 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 750 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 751 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 752 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMaximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 753 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 754 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 755 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 756 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 757 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 758 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 759 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 760 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 761 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 762 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 763 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 764 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than or equal to 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/exclusiveMinimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 765 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 766 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 767 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 768 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 769 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 770 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 771 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 772 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 773 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 774 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 775 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 776 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 777 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 778 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 779 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 780 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 781 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 782 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 783 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 784 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 785 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 786 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 787 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 788 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minimum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 789 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 790 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 791 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 792 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 793 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 794 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 795 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 796 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 797 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 798 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 799 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 800 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/multipleOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 801 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 802 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 803 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 804 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 805 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 806 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 807 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 808 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 809 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 810 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 811 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 812 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/additionalProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 813 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 814 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 815 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 816 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 817 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 818 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 819 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 820 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 821 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 822 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 823 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 824 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: y", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentRequired" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 825 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 826 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 827 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 828 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 829 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 830 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 831 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 832 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 833 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 834 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 835 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 836 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas/x" 254s # }, 254s # { 254s # "error": "not all dependencies are satisfied", 254s # "instanceLocation": "", 254s # "keywordLocation": "/dependentSchemas" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 837 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 838 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 839 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 840 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 841 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 842 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 843 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 844 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 845 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 846 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 847 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 848 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has more than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 849 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 850 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 851 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 852 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 853 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 854 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 855 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 856 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 857 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 858 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 859 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 860 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object has fewer than 1 property", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 861 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 862 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 863 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 864 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 865 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 866 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 867 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 868 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 869 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 870 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 871 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 872 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/no", 254s # "keywordLocation": "/patternProperties/no" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 873 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 874 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 875 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 876 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 877 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 878 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 879 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 880 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 881 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 882 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 883 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 884 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/properties/x" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 885 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 886 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 887 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 888 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 889 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 890 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 891 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 892 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 893 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 894 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 895 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 896 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "subschema is false", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/propertyNames" 254s # }, 254s # { 254s # "error": "not all property names are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/propertyNames" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 897 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 898 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 899 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 900 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 901 - keyword-independence.json: "maxLength + required" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 902 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 903 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 904 - keyword-independence.json: "minLength + required" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 905 - keyword-independence.json: "minLength + required" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 906 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 907 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 908 - keyword-independence.json: "pattern + required" - "object, required invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "object is missing property: x", 254s # "instanceLocation": "", 254s # "keywordLocation": "/required" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 909 - keyword-independence.json: "pattern + required" - "object, required valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 910 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 911 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 912 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 913 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 914 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is greater than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/maxLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 915 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 916 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 917 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 918 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "length is less than 2", 254s # "instanceLocation": "", 254s # "keywordLocation": "/minLength" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 919 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 920 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "additional property not permitted", 254s # "instanceLocation": "/x", 254s # "keywordLocation": "/unevaluatedProperties" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 921 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 922 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "pattern does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/pattern" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 923 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s # 254s ok 924 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value does not match", 254s # "instanceLocation": "/const_string", 254s # "keywordLocation": "/properties/const_string/const" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value does not match", 254s # "instanceLocation": "/const_string", 254s # "keywordLocation": "/properties/const_string/const" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 925 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 926 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 927 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value does not match", 254s # "instanceLocation": "/const_number", 254s # "keywordLocation": "/properties/const_number/const" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value does not match", 254s # "instanceLocation": "/const_number", 254s # "keywordLocation": "/properties/const_number/const" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 928 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value does not match", 254s # "instanceLocation": "/enum_string", 254s # "keywordLocation": "/properties/enum_string/enum" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value does not match", 254s # "instanceLocation": "/enum_string", 254s # "keywordLocation": "/properties/enum_string/enum" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 929 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 930 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 931 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value does not match", 254s # "instanceLocation": "/enum_number", 254s # "keywordLocation": "/properties/enum_number/enum" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value does not match", 254s # "instanceLocation": "/enum_number", 254s # "keywordLocation": "/properties/enum_number/enum" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 932 - recursive-dynamic.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "numeric node" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 933 - recursive-dynamic.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "integer node" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "integerNode.json#/type", 254s # "error": "got number, not one of object, integer", 254s # "instanceLocation": "/november", 254s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/else/$ref/additionalProperties" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "main.json#/else", 254s # "error": "subschema is not valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/else" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "integerNode.json#/type", 254s # "error": "got number, not one of object, integer", 254s # "instanceLocation": "/november", 254s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/else/$ref/additionalProperties" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "main.json#/else", 254s # "error": "subschema is not valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/else" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 934 - recursive-dynamic.json: "$recursiveRef points to a boolean schema" - "follow $recursiveRef to a true schema" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 935 - recursive-dynamic.json: "$recursiveRef points to a boolean schema" - "follow $recursiveRef to a false schema" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "#/$defs/false", 254s # "error": "subschema is false", 254s # "instanceLocation": "/false", 254s # "keywordLocation": "/properties/false/$recursiveRef" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "#/$defs/false", 254s # "error": "subschema is false", 254s # "instanceLocation": "/false", 254s # "keywordLocation": "/properties/false/$recursiveRef" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s 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" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s 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" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 254s # "error": "value is greater than 10", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$ref/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 254s # "error": "value is greater than 10", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$ref/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s 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" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s 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" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 254s # "error": "value is greater than 10", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$ref/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 254s # "error": "value is greater than 10", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$ref/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s 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" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s 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" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 254s # "error": "got string, not number", 254s # "instanceLocation": "", 254s # "keywordLocation": "/allOf/0/$ref/type" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 254s # "error": "got string, not number", 254s # "instanceLocation": "", 254s # "keywordLocation": "/allOf/0/oneOf/0/type" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf", 254s # "error": "no subschemas are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/allOf/0/oneOf" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 254s # "error": "subschema 0 is not valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/allOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 254s # "error": "got string, not number", 254s # "instanceLocation": "", 254s # "keywordLocation": "/allOf/0/$ref/type" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 254s # "error": "subschema 0 is not valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/allOf" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 942 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 943 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 254s # "error": "value is greater than 10", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$ref/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 254s # "error": "value is greater than 10", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$ref/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 944 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 945 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 254s # "error": "value is greater than 10", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$ref/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 254s # "error": "value is greater than 10", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$ref/maximum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 946 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/enum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value does not match", 254s # "instanceLocation": "", 254s # "keywordLocation": "/enum" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 947 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 948 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "$ref value is not a valid URI reference", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$defs/foo/$ref" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "$ref value is not a valid URI reference", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$defs/foo/$ref" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 949 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "$ref value is not a valid URI reference", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$defs/foo/$ref" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "$ref value is not a valid URI reference", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$defs/foo/$ref" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 950 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 951 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 254s # "error": "got string, not integer", 254s # "instanceLocation": "/list/0", 254s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 254s # "error": "subschema is not valid against all items", 254s # "instanceLocation": "/list", 254s # "keywordLocation": "/properties/list/$ref/items" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 254s # "error": "got string, not integer", 254s # "instanceLocation": "/list/0", 254s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 254s # "error": "subschema is not valid against all items", 254s # "instanceLocation": "/list", 254s # "keywordLocation": "/properties/list/$ref/items" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 952 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 953 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/1", 254s # "keywordLocation": "/items/multipleOf" 254s # }, 254s # { 254s # "error": "subschema is not valid against all items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/1", 254s # "keywordLocation": "/items/multipleOf" 254s # }, 254s # { 254s # "error": "subschema is not valid against all items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 954 - short-circuit.json: "items (array form) does not improperly short-circuit" - "single item is valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 955 - short-circuit.json: "items (array form) does not improperly short-circuit" - "second item is invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/1", 254s # "keywordLocation": "/items/1/multipleOf" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/1", 254s # "keywordLocation": "/items/1/multipleOf" 254s # }, 254s # { 254s # "error": "not all items are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/items" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 956 - short-circuit.json: "additionalItems does not improperly short-circuit" - "single additional item is valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 957 - short-circuit.json: "additionalItems does not improperly short-circuit" - "second additional item is invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/2", 254s # "keywordLocation": "/additionalItems/multipleOf" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/2", 254s # "keywordLocation": "/additionalItems/multipleOf" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 958 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "single item is valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 959 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "second item is invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/1", 254s # "keywordLocation": "/unevaluatedItems/multipleOf" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/1", 254s # "keywordLocation": "/unevaluatedItems/multipleOf" 254s # }, 254s # { 254s # "error": "subschema is not valid against all additional items", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedItems" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 960 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 961 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/beta", 254s # "keywordLocation": "/properties/beta/multipleOf" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/beta", 254s # "keywordLocation": "/properties/beta/multipleOf" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 962 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 963 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/beta", 254s # "keywordLocation": "/properties/beta" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/beta", 254s # "keywordLocation": "/properties/beta" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/properties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 964 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 965 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/beta", 254s # "keywordLocation": "/patternProperties/^b/multipleOf" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/beta", 254s # "keywordLocation": "/patternProperties/^b/multipleOf" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 966 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 967 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/beta", 254s # "keywordLocation": "/patternProperties/^b" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "property not permitted", 254s # "instanceLocation": "/beta", 254s # "keywordLocation": "/patternProperties/^b" 254s # }, 254s # { 254s # "error": "not all properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/patternProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 968 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 969 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/beta", 254s # "keywordLocation": "/additionalProperties/multipleOf" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/beta", 254s # "keywordLocation": "/additionalProperties/multipleOf" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/additionalProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 970 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "single property is valid" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 971 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "second property is invalid" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/beta", 254s # "keywordLocation": "/unevaluatedProperties/multipleOf" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "value is not a multiple of 2", 254s # "instanceLocation": "/beta", 254s # "keywordLocation": "/unevaluatedProperties/multipleOf" 254s # }, 254s # { 254s # "error": "not all additional properties are valid", 254s # "instanceLocation": "", 254s # "keywordLocation": "/unevaluatedProperties" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 972 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 973 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "got string, not number", 254s # "instanceLocation": "", 254s # "keywordLocation": "/type" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "got string, not number", 254s # "instanceLocation": "", 254s # "keywordLocation": "/type" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 974 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "got object, not number", 254s # "instanceLocation": "", 254s # "keywordLocation": "/type" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "got object, not number", 254s # "instanceLocation": "", 254s # "keywordLocation": "/type" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 975 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 254s # result: { 254s # "errors": [ 254s # { 254s # "error": "got array, not number", 254s # "instanceLocation": "", 254s # "keywordLocation": "/type" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "error": "got array, not number", 254s # "instanceLocation": "", 254s # "keywordLocation": "/type" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s ok 976 - vocabulary.json: "valid $vocabulary" - "a valid $vocabulary value" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s 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" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 978 - vocabulary.json: "use schema (invalid $vocabulary) as a metaschema" - "invalid $vocabulary value: wrong specification version" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core", 254s # "error": "\"https://json-schema.org/draft/2020-12/vocab/core\" uses draft2020-12, but the metaschema itself uses draft2019-09", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 254s # "error": "the first vocabulary (by evaluation_order) must be Core", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$schema/$vocabulary" 254s # }, 254s # { 254s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$schema" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core", 254s # "error": "\"https://json-schema.org/draft/2020-12/vocab/core\" uses draft2020-12, but the metaschema itself uses draft2019-09", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core" 254s # }, 254s # { 254s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 254s # "error": "the first vocabulary (by evaluation_order) must be Core", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$schema/$vocabulary" 254s # }, 254s # { 254s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$schema" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s ok 979 - vocabulary.json: "invalid $vocabulary (unknown URI), but not until we evaluate with this metaschema" - "invalid $vocabulary (unknown URI): register this metaschema" { 254s # result: { 254s # "valid": true 254s # } 254s # short-circuited result: { 254s # "valid": true 254s # } 254s ok 1 - test passes: data is valid: true 254s 1..1 254s } 254s ok 980 - vocabulary.json: "use schema (unknown URI) as a metaschema" - "invalid $vocabulary value: unknown URI" { 254s # result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 254s # "error": "\"https://foo.com\" is not a known vocabulary", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 254s # }, 254s # { 254s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$schema" 254s # } 254s # ], 254s # "valid": false 254s # } 254s # short-circuited result: { 254s # "errors": [ 254s # { 254s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 254s # "error": "\"https://foo.com\" is not a known vocabulary", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 254s # }, 254s # { 254s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 254s # "instanceLocation": "", 254s # "keywordLocation": "/$schema" 254s # } 254s # ], 254s # "valid": false 254s # } 254s ok 1 - test passes: data is valid: false 254s 1..1 254s } 254s # 254s # generated with: Test::JSON::Schema::Acceptance 1.029 254s # specification version: draft2019-09 254s # using custom test directory: t/additional-tests-draft2019-09 254s # optional tests included: yes 254s # 254s # filename pass todo-fail fail 254s # --------------------------------------------------------------- 254s # anchor.json 2 0 0 254s # annotation-collection.json 10 0 0 254s # badRef.json 3 0 0 254s # faux-buggy-schemas.json 2 0 0 254s # format-date-time.json 4 0 0 254s # format-date.json 1 0 0 254s # format-duration.json 9 0 0 254s # format-ipv4.json 4 0 0 254s # format-ipv6.json 17 0 0 254s # format-relative-json-pointer.json 7 0 0 254s # format-time.json 13 0 0 254s # formats.json 4 0 0 254s # id.json 6 0 0 254s # integers.json 29 0 0 254s # keyword-independence.json 812 0 0 254s # loose-types-const-enum.json 8 0 0 254s # recursive-dynamic.json 4 0 0 254s # ref-and-id.json 6 0 0 254s # ref.json 10 0 0 254s # short-circuit.json 20 0 0 254s # unknownKeyword.json 4 0 0 254s # vocabulary.json 5 0 0 254s # --------------------------------------------------------------- 254s # TOTAL 980 0 0 254s # 254s # Congratulations, all non-optional tests are passing! 254s # 254s ok 981 - no leaks in the main evaluator object 254s ok 982 - no leaks in the short-circuiting evaluator object 254s ok 983 - got unsupported keyword warnings 254s 1..983 254s ok 268s t/additional-tests-draft2020-12.t ....... 268s # 268s # AUTHOR_TESTING: 268s # AUTOMATED_TESTING: 1 268s # EXTENDED_TESTING: 268s # NO_TODO: 268s # TEST_DIR: 268s # NO_SHORT_CIRCUIT: 268s # 268s # running tests in /tmp/autopkgtest.Ge9z6k/autopkgtest_tmp/smokewgxowV/t/additional-tests-draft2020-12 against draft2020-12... 268s # 268s ok 1 - anchor.json: "non-schema object containing an $anchor property" - "skip traversing definition for a valid result" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 2 - anchor.json: "non-schema object containing an $anchor property" - "const at const_not_anchor does not match" { 268s # result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 268s # "error": "value does not match", 268s # "instanceLocation": "", 268s # "keywordLocation": "/else/$ref/const" 268s # }, 268s # { 268s # "error": "subschema is not valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/else" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 268s # "error": "value does not match", 268s # "instanceLocation": "", 268s # "keywordLocation": "/else/$ref/const" 268s # }, 268s # { 268s # "error": "subschema is not valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/else" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 3 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "properties evaluated from allOf" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 4 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "extra property" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/bar", 268s # "keywordLocation": "/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/bar", 268s # "keywordLocation": "/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 5 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "properties evaluated from additionalProperties" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 6 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "extra property" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/bar", 268s # "keywordLocation": "/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/bar", 268s # "keywordLocation": "/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 7 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "properties evaluated from allOf, but unevaluated is buried" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/foo", 268s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "no subschemas are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/foo", 268s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "no subschemas are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 8 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "no properties" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 9 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "properties evaluated from additionalProperties, but unevaluated is buried" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/foo", 268s # "keywordLocation": "/allOf/0/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/allOf/0/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "subschema 0 is not valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/allOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/foo", 268s # "keywordLocation": "/allOf/0/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/allOf/0/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "subschema 0 is not valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/allOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 10 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "no properties" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 11 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 12 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/not" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/not" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 13 - badRef.json: "good references in schemas" - "this data is never used" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 14 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "$ref value is not a valid URI reference", 268s # "instanceLocation": "", 268s # "keywordLocation": "/then/$ref" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "$ref value is not a valid URI reference", 268s # "instanceLocation": "", 268s # "keywordLocation": "/then/$ref" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 15 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "$ref value is not a valid URI reference", 268s # "instanceLocation": "", 268s # "keywordLocation": "/then/$ref" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "$ref value is not a valid URI reference", 268s # "instanceLocation": "", 268s # "keywordLocation": "/then/$ref" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s 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" { 268s # result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 268s # "error": "got string, not null", 268s # "instanceLocation": "", 268s # "keywordLocation": "/then/$ref/$dynamicRef/type" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "main#/then", 268s # "error": "subschema is not valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/then" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 268s # "error": "got string, not null", 268s # "instanceLocation": "", 268s # "keywordLocation": "/then/$ref/$dynamicRef/type" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "main#/then", 268s # "error": "subschema is not valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/then" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s 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" { 268s # result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 268s # "error": "got integer, not null", 268s # "instanceLocation": "", 268s # "keywordLocation": "/then/$ref/$dynamicRef/type" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "main#/then", 268s # "error": "subschema is not valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/then" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 268s # "error": "got integer, not null", 268s # "instanceLocation": "", 268s # "keywordLocation": "/then/$ref/$dynamicRef/type" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "main#/then", 268s # "error": "subschema is not valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/then" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s 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" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 19 - dynamicRef.json: "schema in dynamic scope must have a $dynamicAnchor that matches the fragment" - "value would fail under either subschema" { 268s # result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "orig#/minimum", 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/$dynamicRef/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "orig#/minimum", 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/$dynamicRef/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s 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" { 268s # result: { 268s # "valid": true 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 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a true schema" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 22 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a false schema" { 268s # result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "#/$defs/false", 268s # "error": "subschema is false", 268s # "instanceLocation": "/false", 268s # "keywordLocation": "/properties/false/$dynamicRef" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/properties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "#/$defs/false", 268s # "error": "subschema is false", 268s # "instanceLocation": "/false", 268s # "keywordLocation": "/properties/false/$dynamicRef" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/properties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 23 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 24 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 268s # result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 268s # "error": "got string, not integer", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf/0/type" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 268s # "error": "got string, not integer", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf/1/type" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 268s # "error": "value does not match", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf/2/const" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 268s # "error": "value does not match", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf/3/enum" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 268s # "error": "no subschemas are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 268s # "error": "got string, not integer", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf/0/type" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 268s # "error": "got string, not integer", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf/1/type" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 268s # "error": "value does not match", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf/2/const" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 268s # "error": "value does not match", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf/3/enum" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 268s # "error": "no subschemas are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/anyOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 25 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 26 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, 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 27 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, 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 28 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus 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 # 268s ok 29 - format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 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 30 - format-duration.json: "validation of duration strings" - "years and months can appear without 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 31 - format-duration.json: "validation of duration strings" - "months and days can appear without years" { 268s # result: { 268s # "valid": true 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 - format-duration.json: "validation of duration strings" - "hours and minutes can appear without 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 33 - format-duration.json: "validation of duration strings" - "minutes and seconds can appear without hour" { 268s # result: { 268s # "valid": true 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 - format-duration.json: "validation of duration strings" - "elements may be omitted if their value is zero" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 35 - format-duration.json: "validation of duration strings" - "half a year duration, with full stop decimal point" { 268s # result: { 268s # "valid": true 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 - format-duration.json: "validation of duration strings" - "half a year duration, with comma decimal point" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 37 - format-duration.json: "validation of duration strings" - "only one unit can have a non-integer quantity" { 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 38 - format-duration.json: "validation of duration strings" - "only the smallest unit can have a non-integer quantity" { 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 39 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal 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 40 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 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 41 - format-ipv4.json: "validation of ipv4 strings" - "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 42 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 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 43 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 268s # result: { 268s # "valid": true 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 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 45 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 268s # result: { 268s # "valid": true 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 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 47 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 268s # result: { 268s # "valid": true 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 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 49 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 268s # result: { 268s # "valid": true 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 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 51 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 268s # result: { 268s # "valid": true 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 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 53 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 268s # result: { 268s # "valid": true 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 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 55 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 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 56 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 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 57 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 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 58 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 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 59 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 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 60 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty 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 61 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char 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 62 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer 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 63 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 64 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# 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 65 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "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 66 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "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 # 268s ok 67 - format-time.json: "validation of time strings" - "valid 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 68 - format-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 69 - format-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 70 - format-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 71 - format-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 72 - format-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 73 - format-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 74 - format-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 75 - format-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 76 - format-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 77 - format-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 78 - format-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 79 - format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 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 80 - formats.json: "format validation after a $ref" - "invalid duration" { 268s # result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "#/$defs/my_format/format", 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/$ref/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "#/$defs/my_format/format", 268s # "error": "not a valid duration string", 268s # "instanceLocation": "", 268s # "keywordLocation": "/$ref/format" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 81 - formats.json: "format validation after a $ref" - "valid 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 82 - formats.json: "format validation after an $id" - "invalid duration" { 268s # result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 268s # "error": "not a valid duration string", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items/allOf/0/format" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "bloop#/allOf", 268s # "error": "subschema 0 is not valid", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items/allOf" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 268s # "error": "not a valid duration string", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items/allOf/0/format" 268s # }, 268s # { 268s # "absoluteKeywordLocation": "bloop#/allOf", 268s # "error": "subschema 0 is not valid", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items/allOf" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 83 - formats.json: "format validation after an $id" - "valid 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 # 268s ok 84 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 85 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 268s # result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 268s # "error": "value does not match", 268s # "instanceLocation": "", 268s # "keywordLocation": "/else/$ref/const" 268s # }, 268s # { 268s # "error": "subschema is not valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/else" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 268s # "error": "value does not match", 268s # "instanceLocation": "", 268s # "keywordLocation": "/else/$ref/const" 268s # }, 268s # { 268s # "error": "subschema is not valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/else" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 86 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "$id cannot be empty", 268s # "instanceLocation": "", 268s # "keywordLocation": "/$id" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "$id cannot be empty", 268s # "instanceLocation": "", 268s # "keywordLocation": "/$id" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 87 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "$id cannot be empty", 268s # "instanceLocation": "", 268s # "keywordLocation": "/$id" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "$id cannot be empty", 268s # "instanceLocation": "", 268s # "keywordLocation": "/$id" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 88 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "$id cannot be empty", 268s # "instanceLocation": "", 268s # "keywordLocation": "/$id" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "$id cannot be empty", 268s # "instanceLocation": "", 268s # "keywordLocation": "/$id" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 89 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "$id cannot be empty", 268s # "instanceLocation": "", 268s # "keywordLocation": "/$id" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "$id cannot be empty", 268s # "instanceLocation": "", 268s # "keywordLocation": "/$id" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s # 268s ok 90 - integers.json: "type checks" - "beyond int64 lower boundary" { 268s # result: { 268s # "valid": true 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 - integers.json: "type checks" - "int64 lower boundary" { 268s # result: { 268s # "valid": true 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 - integers.json: "type checks" - "beyond int32 lower boundary" { 268s # result: { 268s # "valid": true 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 - integers.json: "type checks" - "int32 lower boundary" { 268s # result: { 268s # "valid": true 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 - integers.json: "type checks" - "zero" { 268s # result: { 268s # "valid": true 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 - integers.json: "type checks" - "int32 upper boundary" { 268s # result: { 268s # "valid": true 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 - integers.json: "type checks" - "beyond int32 upper boundary" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 97 - integers.json: "type checks" - "upper int64 boundary" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 98 - integers.json: "type checks" - "beyond int64 upper boundary" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 99 - integers.json: "int32 range checks" - "beyond lower boundary" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than -2147483648", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than -2147483648", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 100 - integers.json: "int32 range checks" - "lower boundary" { 268s # result: { 268s # "valid": true 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 - integers.json: "int32 range checks" - "zero" { 268s # result: { 268s # "valid": true 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 - integers.json: "int32 range checks" - "upper boundary" { 268s # result: { 268s # "valid": true 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 - integers.json: "int32 range checks" - "beyond upper boundary" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2147483647", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2147483647", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 104 - integers.json: "int64 range checks" - "beyond lower boundary" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than -9223372036854775808", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than -9223372036854775808", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 105 - integers.json: "int64 range checks" - "lower boundary" { 268s # result: { 268s # "valid": true 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 - integers.json: "int64 range checks" - "zero" { 268s # result: { 268s # "valid": true 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 - integers.json: "int64 range checks" - "upper boundary" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 108 - integers.json: "int64 range checks" - "beyond upper boundary" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 9223372036854775807", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 9223372036854775807", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 109 - integers.json: "equality checks" - "beyond int64 lower boundary" { 268s # result: { 268s # "valid": true 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 - integers.json: "equality checks" - "int64 lower boundary" { 268s # result: { 268s # "valid": true 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 - integers.json: "equality checks" - "beyond int32 lower boundary" { 268s # result: { 268s # "valid": true 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 - integers.json: "equality checks" - "int32 lower boundary" { 268s # result: { 268s # "valid": true 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 - integers.json: "equality checks" - "zero" { 268s # result: { 268s # "valid": true 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 - integers.json: "equality checks" - "one" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value does not match", 268s # "instanceLocation": "", 268s # "keywordLocation": "/enum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value does not match", 268s # "instanceLocation": "", 268s # "keywordLocation": "/enum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 115 - integers.json: "equality checks" - "int32 upper boundary" { 268s # result: { 268s # "valid": true 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 - integers.json: "equality checks" - "beyond int32 upper boundary" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 117 - integers.json: "equality checks" - "int64 upper boundary" { 268s # result: { 268s # "valid": true 268s # } 268s # short-circuited result: { 268s # "valid": true 268s # } 268s ok 1 - test passes: data is valid: true 268s 1..1 268s } 268s ok 118 - integers.json: "equality checks" - "beyond int64 upper boundary" { 268s # result: { 268s # "valid": 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 119 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 120 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains 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 121 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 122 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum 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 123 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 124 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains 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 125 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 126 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum 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 127 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 128 - keyword-independence.json: "contains + maximum" - "array, contains 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 129 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 130 - keyword-independence.json: "contains + maximum" - "number, maximum 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 131 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 132 - keyword-independence.json: "contains + minimum" - "array, contains 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 133 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 134 - keyword-independence.json: "contains + minimum" - "number, minimum 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 135 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 136 - keyword-independence.json: "contains + multipleOf" - "array, contains 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 137 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 138 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf 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 139 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 140 - keyword-independence.json: "exclusiveMaximum + items" - "array, items 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 141 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 142 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum 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 143 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 144 - keyword-independence.json: "exclusiveMinimum + items" - "array, items 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 145 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 146 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum 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 147 - keyword-independence.json: "items + maximum" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 148 - keyword-independence.json: "items + maximum" - "array, items 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 149 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 150 - keyword-independence.json: "items + maximum" - "number, maximum 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 151 - keyword-independence.json: "items + minimum" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 152 - keyword-independence.json: "items + minimum" - "array, items 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 153 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 154 - keyword-independence.json: "items + minimum" - "number, minimum 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 155 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 156 - keyword-independence.json: "items + multipleOf" - "array, items 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 157 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 158 - keyword-independence.json: "items + multipleOf" - "number, multipleOf 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 159 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 160 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems 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 161 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 162 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum 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 163 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 164 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems 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 165 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 166 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum 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 167 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 168 - keyword-independence.json: "maxItems + maximum" - "array, maxItems 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 169 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 170 - keyword-independence.json: "maxItems + maximum" - "number, maximum 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 171 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 172 - keyword-independence.json: "maxItems + minimum" - "array, maxItems 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 173 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 174 - keyword-independence.json: "maxItems + minimum" - "number, minimum 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 175 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 176 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems 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 177 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 178 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf 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 179 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 180 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems 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 181 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 182 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum 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 183 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 184 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems 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 185 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 186 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum 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 187 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 188 - keyword-independence.json: "maximum + minItems" - "array, minItems 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 189 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 190 - keyword-independence.json: "maximum + minItems" - "number, maximum 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 191 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 192 - keyword-independence.json: "minItems + minimum" - "array, minItems 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 193 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 194 - keyword-independence.json: "minItems + minimum" - "number, minimum 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 195 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 196 - keyword-independence.json: "minItems + multipleOf" - "array, minItems 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 197 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 198 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf 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 199 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "array, prefixItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 200 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "array, prefixItems 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 201 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "number, exclusiveMaximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 202 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "number, exclusiveMaximum 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 203 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "array, prefixItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 204 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "array, prefixItems 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 205 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "number, exclusiveMinimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 206 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "number, exclusiveMinimum 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 207 - keyword-independence.json: "maximum + prefixItems" - "array, prefixItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 208 - keyword-independence.json: "maximum + prefixItems" - "array, prefixItems 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 209 - keyword-independence.json: "maximum + prefixItems" - "number, maximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 210 - keyword-independence.json: "maximum + prefixItems" - "number, maximum 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 211 - keyword-independence.json: "minimum + prefixItems" - "array, prefixItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 212 - keyword-independence.json: "minimum + prefixItems" - "array, prefixItems 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 213 - keyword-independence.json: "minimum + prefixItems" - "number, minimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 214 - keyword-independence.json: "minimum + prefixItems" - "number, minimum 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 215 - keyword-independence.json: "multipleOf + prefixItems" - "array, prefixItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 216 - keyword-independence.json: "multipleOf + prefixItems" - "array, prefixItems 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 217 - keyword-independence.json: "multipleOf + prefixItems" - "number, multipleOf invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 218 - keyword-independence.json: "multipleOf + prefixItems" - "number, multipleOf 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 219 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/unevaluatedItems" 268s # }, 268s # { 268s # "error": "subschema is not valid against all additional items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/unevaluatedItems" 268s # }, 268s # { 268s # "error": "subschema is not valid against all additional items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 220 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems 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 221 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 222 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum 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 223 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/unevaluatedItems" 268s # }, 268s # { 268s # "error": "subschema is not valid against all additional items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/unevaluatedItems" 268s # }, 268s # { 268s # "error": "subschema is not valid against all additional items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 224 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems 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 225 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 226 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum 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 227 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/unevaluatedItems" 268s # }, 268s # { 268s # "error": "subschema is not valid against all additional items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/unevaluatedItems" 268s # }, 268s # { 268s # "error": "subschema is not valid against all additional items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 228 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems 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 229 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 230 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum 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 231 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/unevaluatedItems" 268s # }, 268s # { 268s # "error": "subschema is not valid against all additional items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/unevaluatedItems" 268s # }, 268s # { 268s # "error": "subschema is not valid against all additional items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 232 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems 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 233 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 234 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum 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 235 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/unevaluatedItems" 268s # }, 268s # { 268s # "error": "subschema is not valid against all additional items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/unevaluatedItems" 268s # }, 268s # { 268s # "error": "subschema is not valid against all additional items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 236 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems 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 237 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 238 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf 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 239 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "items at indices 0 and 1 are not unique", 268s # "instanceLocation": "", 268s # "keywordLocation": "/uniqueItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "items at indices 0 and 1 are not unique", 268s # "instanceLocation": "", 268s # "keywordLocation": "/uniqueItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 240 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems 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 241 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMaximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 242 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum 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 243 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "items at indices 0 and 1 are not unique", 268s # "instanceLocation": "", 268s # "keywordLocation": "/uniqueItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "items at indices 0 and 1 are not unique", 268s # "instanceLocation": "", 268s # "keywordLocation": "/uniqueItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 244 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems 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 245 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than or equal to 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/exclusiveMinimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 246 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum 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 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "items at indices 0 and 1 are not unique", 268s # "instanceLocation": "", 268s # "keywordLocation": "/uniqueItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "items at indices 0 and 1 are not unique", 268s # "instanceLocation": "", 268s # "keywordLocation": "/uniqueItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 248 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems 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 249 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is greater than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maximum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 250 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum 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 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "items at indices 0 and 1 are not unique", 268s # "instanceLocation": "", 268s # "keywordLocation": "/uniqueItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "items at indices 0 and 1 are not unique", 268s # "instanceLocation": "", 268s # "keywordLocation": "/uniqueItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 252 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems 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 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is less than 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minimum" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 254 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum 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 255 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "items at indices 0 and 1 are not unique", 268s # "instanceLocation": "", 268s # "keywordLocation": "/uniqueItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "items at indices 0 and 1 are not unique", 268s # "instanceLocation": "", 268s # "keywordLocation": "/uniqueItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 256 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems 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 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "value is not a multiple of 2", 268s # "instanceLocation": "", 268s # "keywordLocation": "/multipleOf" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 258 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf 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 259 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 260 - keyword-independence.json: "additionalProperties + contains" - "array, contains 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 261 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/additionalProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/additionalProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/additionalProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/additionalProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 262 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties 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 263 - keyword-independence.json: "contains + dependentRequired" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 264 - keyword-independence.json: "contains + dependentRequired" - "array, contains 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 265 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: y", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: y", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 266 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired 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 267 - keyword-independence.json: "contains + dependentSchemas" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 268 - keyword-independence.json: "contains + dependentSchemas" - "array, contains 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 269 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 270 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas 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 271 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 272 - keyword-independence.json: "contains + maxProperties" - "array, contains 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 273 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object has more than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object has more than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 274 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties 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 275 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 276 - keyword-independence.json: "contains + minProperties" - "array, contains 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 277 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object has fewer than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object has fewer than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 278 - keyword-independence.json: "contains + minProperties" - "object, minProperties 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 279 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 280 - keyword-independence.json: "contains + patternProperties" - "array, contains 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 281 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/no", 268s # "keywordLocation": "/patternProperties/no" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/patternProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/no", 268s # "keywordLocation": "/patternProperties/no" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/patternProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 282 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties 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 283 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 284 - keyword-independence.json: "contains + properties" - "array, contains 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 285 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/properties/x" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/properties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/properties/x" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/properties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 286 - keyword-independence.json: "contains + properties" - "object, properties 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 287 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 288 - keyword-independence.json: "contains + propertyNames" - "array, contains 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 289 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/propertyNames" 268s # }, 268s # { 268s # "error": "not all property names are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/propertyNames" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/propertyNames" 268s # }, 268s # { 268s # "error": "not all property names are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/propertyNames" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 290 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames 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 291 - keyword-independence.json: "contains + required" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 292 - keyword-independence.json: "contains + required" - "array, contains 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 293 - keyword-independence.json: "contains + required" - "object, required invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: x", 268s # "instanceLocation": "", 268s # "keywordLocation": "/required" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: x", 268s # "instanceLocation": "", 268s # "keywordLocation": "/required" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 294 - keyword-independence.json: "contains + required" - "object, required 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 295 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is not valid against any item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/contains" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 296 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains 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 297 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 298 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties 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 299 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 300 - keyword-independence.json: "additionalProperties + items" - "array, items 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 301 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/additionalProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/additionalProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/additionalProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/additionalProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 302 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties 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 303 - keyword-independence.json: "dependentRequired + items" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 304 - keyword-independence.json: "dependentRequired + items" - "array, items 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 305 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: y", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: y", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 306 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired 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 307 - keyword-independence.json: "dependentSchemas + items" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 308 - keyword-independence.json: "dependentSchemas + items" - "array, items 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 309 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 310 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas 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 311 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 312 - keyword-independence.json: "items + maxProperties" - "array, items 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 313 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object has more than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object has more than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 314 - keyword-independence.json: "items + maxProperties" - "object, maxProperties 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 315 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 316 - keyword-independence.json: "items + minProperties" - "array, items 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 317 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object has fewer than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object has fewer than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 318 - keyword-independence.json: "items + minProperties" - "object, minProperties 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 319 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 320 - keyword-independence.json: "items + patternProperties" - "array, items 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 321 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/no", 268s # "keywordLocation": "/patternProperties/no" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/patternProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/no", 268s # "keywordLocation": "/patternProperties/no" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/patternProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 322 - keyword-independence.json: "items + patternProperties" - "object, patternProperties 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 323 - keyword-independence.json: "items + properties" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 324 - keyword-independence.json: "items + properties" - "array, items 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 325 - keyword-independence.json: "items + properties" - "object, properties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/properties/x" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/properties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/properties/x" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/properties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 326 - keyword-independence.json: "items + properties" - "object, properties 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 327 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 328 - keyword-independence.json: "items + propertyNames" - "array, items 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 329 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/propertyNames" 268s # }, 268s # { 268s # "error": "not all property names are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/propertyNames" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/propertyNames" 268s # }, 268s # { 268s # "error": "not all property names are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/propertyNames" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 330 - keyword-independence.json: "items + propertyNames" - "object, propertyNames 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 331 - keyword-independence.json: "items + required" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 332 - keyword-independence.json: "items + required" - "array, items 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 333 - keyword-independence.json: "items + required" - "object, required invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: x", 268s # "instanceLocation": "", 268s # "keywordLocation": "/required" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: x", 268s # "instanceLocation": "", 268s # "keywordLocation": "/required" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 334 - keyword-independence.json: "items + required" - "object, required 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 335 - keyword-independence.json: "items + unevaluatedProperties" - "array, items invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/items" 268s # }, 268s # { 268s # "error": "subschema is not valid against all items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/items" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 336 - keyword-independence.json: "items + unevaluatedProperties" - "array, items 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 337 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 338 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties 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 339 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 340 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems 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 341 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/additionalProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/additionalProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/additionalProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/additionalProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 342 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties 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 343 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 344 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems 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 345 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: y", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: y", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 346 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired 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 347 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 348 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems 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 349 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 350 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas 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 351 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 352 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems 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 353 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object has more than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object has more than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 354 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties 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 355 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 356 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems 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 357 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object has fewer than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object has fewer than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 358 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties 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 359 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 360 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems 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 361 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/no", 268s # "keywordLocation": "/patternProperties/no" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/patternProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/no", 268s # "keywordLocation": "/patternProperties/no" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/patternProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 362 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties 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 363 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 364 - keyword-independence.json: "maxItems + properties" - "array, maxItems 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 365 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/properties/x" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/properties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/properties/x" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/properties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 366 - keyword-independence.json: "maxItems + properties" - "object, properties 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 367 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 368 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems 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 369 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/propertyNames" 268s # }, 268s # { 268s # "error": "not all property names are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/propertyNames" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/propertyNames" 268s # }, 268s # { 268s # "error": "not all property names are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/propertyNames" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 370 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames 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 371 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 372 - keyword-independence.json: "maxItems + required" - "array, maxItems 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 373 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: x", 268s # "instanceLocation": "", 268s # "keywordLocation": "/required" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: x", 268s # "instanceLocation": "", 268s # "keywordLocation": "/required" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 374 - keyword-independence.json: "maxItems + required" - "object, required 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 375 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has more than 1 item", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 376 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems 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 377 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 378 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties 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 379 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 380 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems 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 381 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/additionalProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/additionalProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/additionalProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/additionalProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 382 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties 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 383 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 384 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems 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 385 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: y", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: y", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 386 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired 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 387 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 388 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems 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 389 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 390 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas 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 391 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 392 - keyword-independence.json: "maxProperties + minItems" - "array, minItems 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 393 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object has more than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object has more than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/maxProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 394 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties 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 395 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 396 - keyword-independence.json: "minItems + minProperties" - "array, minItems 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 397 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object has fewer than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object has fewer than 1 property", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 398 - keyword-independence.json: "minItems + minProperties" - "object, minProperties 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 399 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 400 - keyword-independence.json: "minItems + patternProperties" - "array, minItems 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 401 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/no", 268s # "keywordLocation": "/patternProperties/no" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/patternProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/no", 268s # "keywordLocation": "/patternProperties/no" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/patternProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 402 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties 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 403 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 404 - keyword-independence.json: "minItems + properties" - "array, minItems 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 405 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/properties/x" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/properties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/properties/x" 268s # }, 268s # { 268s # "error": "not all properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/properties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 406 - keyword-independence.json: "minItems + properties" - "object, properties 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 407 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 408 - keyword-independence.json: "minItems + propertyNames" - "array, minItems 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 409 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/propertyNames" 268s # }, 268s # { 268s # "error": "not all property names are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/propertyNames" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/propertyNames" 268s # }, 268s # { 268s # "error": "not all property names are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/propertyNames" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 410 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames 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 411 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 412 - keyword-independence.json: "minItems + required" - "array, minItems 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 413 - keyword-independence.json: "minItems + required" - "object, required invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: x", 268s # "instanceLocation": "", 268s # "keywordLocation": "/required" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: x", 268s # "instanceLocation": "", 268s # "keywordLocation": "/required" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 414 - keyword-independence.json: "minItems + required" - "object, required 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 415 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "array has fewer than 2 items", 268s # "instanceLocation": "", 268s # "keywordLocation": "/minItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 416 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems 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 417 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/unevaluatedProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/unevaluatedProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 418 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties 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 419 - keyword-independence.json: "additionalProperties + prefixItems" - "array, prefixItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 420 - keyword-independence.json: "additionalProperties + prefixItems" - "array, prefixItems 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 421 - keyword-independence.json: "additionalProperties + prefixItems" - "object, additionalProperties invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/additionalProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/additionalProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "additional property not permitted", 268s # "instanceLocation": "/x", 268s # "keywordLocation": "/additionalProperties" 268s # }, 268s # { 268s # "error": "not all additional properties are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/additionalProperties" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 422 - keyword-independence.json: "additionalProperties + prefixItems" - "object, additionalProperties 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 423 - keyword-independence.json: "dependentRequired + prefixItems" - "array, prefixItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 424 - keyword-independence.json: "dependentRequired + prefixItems" - "array, prefixItems 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 425 - keyword-independence.json: "dependentRequired + prefixItems" - "object, dependentRequired invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: y", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "object is missing property: y", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentRequired" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 426 - keyword-independence.json: "dependentRequired + prefixItems" - "object, dependentRequired 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 427 - keyword-independence.json: "dependentSchemas + prefixItems" - "array, prefixItems invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s # short-circuited result: { 268s # "errors": [ 268s # { 268s # "error": "item not permitted", 268s # "instanceLocation": "/0", 268s # "keywordLocation": "/prefixItems/0" 268s # }, 268s # { 268s # "error": "not all items are valid", 268s # "instanceLocation": "", 268s # "keywordLocation": "/prefixItems" 268s # } 268s # ], 268s # "valid": false 268s # } 268s ok 1 - test passes: data is valid: false 268s 1..1 268s } 268s ok 428 - keyword-independence.json: "dependentSchemas + prefixItems" - "array, prefixItems 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 429 - keyword-independence.json: "dependentSchemas + prefixItems" - "object, dependentSchemas invalid" { 268s # result: { 268s # "errors": [ 268s # { 268s # "error": "subschema is false", 268s # "instanceLocation": "", 268s # "keywordLocation": "/dependentSchemas/x" 268s # }, 268s # { 268s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 430 - keyword-independence.json: "dependentSchemas + prefixItems" - "object, dependentSchemas valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 431 - keyword-independence.json: "maxProperties + prefixItems" - "array, prefixItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 432 - keyword-independence.json: "maxProperties + prefixItems" - "array, prefixItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 433 - keyword-independence.json: "maxProperties + prefixItems" - "object, maxProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 434 - keyword-independence.json: "maxProperties + prefixItems" - "object, maxProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 435 - keyword-independence.json: "minProperties + prefixItems" - "array, prefixItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 436 - keyword-independence.json: "minProperties + prefixItems" - "array, prefixItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 437 - keyword-independence.json: "minProperties + prefixItems" - "object, minProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 438 - keyword-independence.json: "minProperties + prefixItems" - "object, minProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 439 - keyword-independence.json: "patternProperties + prefixItems" - "array, prefixItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 440 - keyword-independence.json: "patternProperties + prefixItems" - "array, prefixItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 441 - keyword-independence.json: "patternProperties + prefixItems" - "object, patternProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 442 - keyword-independence.json: "patternProperties + prefixItems" - "object, patternProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 443 - keyword-independence.json: "prefixItems + properties" - "array, prefixItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 444 - keyword-independence.json: "prefixItems + properties" - "array, prefixItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 445 - keyword-independence.json: "prefixItems + properties" - "object, properties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 446 - keyword-independence.json: "prefixItems + properties" - "object, properties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 447 - keyword-independence.json: "prefixItems + propertyNames" - "array, prefixItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 448 - keyword-independence.json: "prefixItems + propertyNames" - "array, prefixItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 449 - keyword-independence.json: "prefixItems + propertyNames" - "object, propertyNames invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 450 - keyword-independence.json: "prefixItems + propertyNames" - "object, propertyNames valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 451 - keyword-independence.json: "prefixItems + required" - "array, prefixItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 452 - keyword-independence.json: "prefixItems + required" - "array, prefixItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 453 - keyword-independence.json: "prefixItems + required" - "object, required invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 454 - keyword-independence.json: "prefixItems + required" - "object, required valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 455 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "array, prefixItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 456 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "array, prefixItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 457 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 458 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 459 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 460 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 461 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 462 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 463 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 464 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 465 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 466 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 467 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 468 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 469 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 470 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 471 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 472 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 473 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 474 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 475 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 476 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 477 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 478 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 479 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 480 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 481 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 482 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 483 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 484 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 485 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 486 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 487 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 488 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 489 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 490 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 491 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 492 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 493 - keyword-independence.json: "required + unevaluatedItems" - "object, required invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 494 - keyword-independence.json: "required + unevaluatedItems" - "object, required valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 495 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 496 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 497 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 498 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 499 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 500 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 501 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 502 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 503 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 504 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 505 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 506 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 507 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 508 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 509 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 510 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 511 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 512 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 513 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 514 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 515 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 516 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 517 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 518 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 519 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 520 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 521 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 522 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 523 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 524 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 525 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 526 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 527 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 528 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 529 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 530 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 531 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 532 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 533 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 534 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 535 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 536 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 537 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 538 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 539 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is not valid against any item", 269s # "instanceLocation": "", 269s # "keywordLocation": "/contains" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is not valid against any item", 269s # "instanceLocation": "", 269s # "keywordLocation": "/contains" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 540 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 541 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 542 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 543 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is not valid against any item", 269s # "instanceLocation": "", 269s # "keywordLocation": "/contains" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is not valid against any item", 269s # "instanceLocation": "", 269s # "keywordLocation": "/contains" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 544 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 545 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 546 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 547 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is not valid against any item", 269s # "instanceLocation": "", 269s # "keywordLocation": "/contains" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is not valid against any item", 269s # "instanceLocation": "", 269s # "keywordLocation": "/contains" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 548 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 549 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 550 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 551 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/items" 269s # }, 269s # { 269s # "error": "subschema is not valid against all items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/items" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/items" 269s # }, 269s # { 269s # "error": "subschema is not valid against all items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/items" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 552 - keyword-independence.json: "items + maxLength" - "array, items valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 553 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 554 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 555 - keyword-independence.json: "items + minLength" - "array, items invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/items" 269s # }, 269s # { 269s # "error": "subschema is not valid against all items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/items" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/items" 269s # }, 269s # { 269s # "error": "subschema is not valid against all items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/items" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 556 - keyword-independence.json: "items + minLength" - "array, items valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 557 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 558 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 559 - keyword-independence.json: "items + pattern" - "array, items invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/items" 269s # }, 269s # { 269s # "error": "subschema is not valid against all items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/items" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/items" 269s # }, 269s # { 269s # "error": "subschema is not valid against all items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/items" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 560 - keyword-independence.json: "items + pattern" - "array, items valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 561 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 562 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 563 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "array has more than 1 item", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "array has more than 1 item", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 564 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 565 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 566 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 567 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "array has more than 1 item", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "array has more than 1 item", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 568 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 569 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 570 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 571 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "array has more than 1 item", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "array has more than 1 item", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 572 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 573 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 574 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 575 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "array has fewer than 2 items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "array has fewer than 2 items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 576 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 577 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 578 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 579 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "array has fewer than 2 items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "array has fewer than 2 items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 580 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 581 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 582 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 583 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "array has fewer than 2 items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "array has fewer than 2 items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 584 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 585 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 586 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 587 - keyword-independence.json: "maxLength + prefixItems" - "array, prefixItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 588 - keyword-independence.json: "maxLength + prefixItems" - "array, prefixItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 589 - keyword-independence.json: "maxLength + prefixItems" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 590 - keyword-independence.json: "maxLength + prefixItems" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 591 - keyword-independence.json: "minLength + prefixItems" - "array, prefixItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 592 - keyword-independence.json: "minLength + prefixItems" - "array, prefixItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 593 - keyword-independence.json: "minLength + prefixItems" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 594 - keyword-independence.json: "minLength + prefixItems" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 595 - keyword-independence.json: "pattern + prefixItems" - "array, prefixItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/prefixItems/0" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 596 - keyword-independence.json: "pattern + prefixItems" - "array, prefixItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 597 - keyword-independence.json: "pattern + prefixItems" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 598 - keyword-independence.json: "pattern + prefixItems" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 599 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 600 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 601 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 602 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 603 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 604 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 605 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 606 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 607 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional item not permitted", 269s # "instanceLocation": "/0", 269s # "keywordLocation": "/unevaluatedItems" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 608 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 609 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 610 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 611 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 612 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 613 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 614 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 615 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 616 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 617 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 618 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 619 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "items at indices 0 and 1 are not unique", 269s # "instanceLocation": "", 269s # "keywordLocation": "/uniqueItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 620 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 621 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 622 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 623 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 624 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 625 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 626 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 627 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 628 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 629 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 630 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 631 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 632 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 633 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 634 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 635 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 636 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 637 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 638 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 639 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 640 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 641 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 642 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 643 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 644 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 645 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 646 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 647 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 648 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 649 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 650 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 651 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 652 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 653 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 654 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 655 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 656 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 657 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 658 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 659 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 660 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 661 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 662 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 663 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 664 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 665 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 666 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 667 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 668 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 669 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 670 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 671 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 672 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 673 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 674 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 675 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 676 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 677 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 678 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 679 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 680 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 681 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 682 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 683 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 684 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 685 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 686 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 687 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 688 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 689 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 690 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 691 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 692 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 693 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 694 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 695 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 696 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 697 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 698 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 699 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 700 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 701 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 702 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 703 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 704 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 705 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 706 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 707 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 708 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 709 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 710 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 711 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 712 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 713 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 714 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 715 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 716 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 717 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 718 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 719 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 720 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 721 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 722 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 723 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 724 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 725 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 726 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 727 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 728 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 729 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 730 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 731 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 732 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 733 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 734 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 735 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 736 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 737 - keyword-independence.json: "maximum + required" - "object, required invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 738 - keyword-independence.json: "maximum + required" - "object, required valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 739 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 740 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 741 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 742 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 743 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 744 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 745 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 746 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 747 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 748 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 749 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 750 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 751 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 752 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 753 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 754 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 755 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 756 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 757 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 758 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 759 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 760 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 761 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 762 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 763 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 764 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 765 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 766 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 767 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 768 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 769 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 770 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 771 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 772 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 773 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 774 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 775 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 776 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 777 - keyword-independence.json: "minimum + required" - "object, required invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 778 - keyword-independence.json: "minimum + required" - "object, required valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 779 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 780 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 781 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 782 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 783 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 784 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 785 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 786 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 787 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 788 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 789 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 790 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 791 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 792 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 793 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 794 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 795 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 796 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 797 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 798 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 799 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 800 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 801 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 802 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 803 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 804 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 805 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 806 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 807 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 808 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 809 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 810 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 811 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 812 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 813 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 814 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 815 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 816 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 817 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 818 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 819 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 820 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 821 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 822 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 823 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 824 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 825 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 826 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 827 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 828 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 829 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 830 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 831 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMaximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 832 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 833 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 834 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 835 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 836 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 837 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 838 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 839 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 840 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 841 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 842 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 843 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than or equal to 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/exclusiveMinimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 844 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 845 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 846 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 847 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 848 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 849 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 850 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 851 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 852 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 853 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 854 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 855 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 856 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 857 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 858 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 859 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 860 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 861 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 862 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 863 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 864 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 865 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 866 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 867 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 868 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 869 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 870 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 871 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 872 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 873 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 874 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 875 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 876 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 877 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 878 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 879 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/multipleOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 880 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 881 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 882 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 883 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 884 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 885 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 886 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 887 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 888 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 889 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 890 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 891 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/additionalProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 892 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 893 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 894 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 895 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 896 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 897 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 898 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 899 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 900 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 901 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 902 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 903 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: y", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentRequired" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 904 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 905 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 906 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 907 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 908 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 909 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 910 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 911 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 912 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 913 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 914 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 915 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas/x" 269s # }, 269s # { 269s # "error": "not all dependencies are satisfied", 269s # "instanceLocation": "", 269s # "keywordLocation": "/dependentSchemas" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 916 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 917 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 918 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 919 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 920 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 921 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 922 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 923 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 924 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 925 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 926 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 927 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has more than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 928 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 929 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 930 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 931 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 932 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 933 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 934 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 935 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 936 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 937 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 938 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 939 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object has fewer than 1 property", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 940 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 941 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 942 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 943 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 944 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 945 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 946 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 947 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 948 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 949 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 950 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 951 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/no", 269s # "keywordLocation": "/patternProperties/no" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 952 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 953 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 954 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 955 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 956 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 957 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 958 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 959 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 960 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 961 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 962 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 963 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/properties/x" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 964 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 965 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 966 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 967 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 968 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 969 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 970 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 971 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 972 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 973 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 974 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 975 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "subschema is false", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/propertyNames" 269s # }, 269s # { 269s # "error": "not all property names are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/propertyNames" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 976 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 977 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 978 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 979 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 980 - keyword-independence.json: "maxLength + required" - "object, required valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 981 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 982 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 983 - keyword-independence.json: "minLength + required" - "object, required invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 984 - keyword-independence.json: "minLength + required" - "object, required valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 985 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 986 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 987 - keyword-independence.json: "pattern + required" - "object, required invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "object is missing property: x", 269s # "instanceLocation": "", 269s # "keywordLocation": "/required" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 988 - keyword-independence.json: "pattern + required" - "object, required valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 989 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 990 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 991 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 992 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 993 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is greater than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maxLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 994 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 995 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 996 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 997 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "length is less than 2", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minLength" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 998 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 999 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "additional property not permitted", 269s # "instanceLocation": "/x", 269s # "keywordLocation": "/unevaluatedProperties" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1000 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1001 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "pattern does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/pattern" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1002 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s # 269s ok 1003 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value does not match", 269s # "instanceLocation": "/const_string", 269s # "keywordLocation": "/properties/const_string/const" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value does not match", 269s # "instanceLocation": "/const_string", 269s # "keywordLocation": "/properties/const_string/const" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1004 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1005 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1006 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value does not match", 269s # "instanceLocation": "/const_number", 269s # "keywordLocation": "/properties/const_number/const" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value does not match", 269s # "instanceLocation": "/const_number", 269s # "keywordLocation": "/properties/const_number/const" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1007 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value does not match", 269s # "instanceLocation": "/enum_string", 269s # "keywordLocation": "/properties/enum_string/enum" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value does not match", 269s # "instanceLocation": "/enum_string", 269s # "keywordLocation": "/properties/enum_string/enum" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1008 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1009 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1010 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value does not match", 269s # "instanceLocation": "/enum_number", 269s # "keywordLocation": "/properties/enum_number/enum" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value does not match", 269s # "instanceLocation": "/enum_number", 269s # "keywordLocation": "/properties/enum_number/enum" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s # 269s ok 1011 - recursive-dynamic.json: "dynamic $dynamicRef destination (not predictable at schema compile time)" - "numeric node" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1012 - recursive-dynamic.json: "dynamic $dynamicRef destination (not predictable at schema compile time)" - "integer node" { 269s # result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "integerNode.json#/type", 269s # "error": "got number, not one of object, integer", 269s # "instanceLocation": "/november", 269s # "keywordLocation": "/else/$ref/additionalProperties/$dynamicRef/type" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/else/$ref/additionalProperties" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "main.json#/else", 269s # "error": "subschema is not valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/else" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "integerNode.json#/type", 269s # "error": "got number, not one of object, integer", 269s # "instanceLocation": "/november", 269s # "keywordLocation": "/else/$ref/additionalProperties/$dynamicRef/type" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/else/$ref/additionalProperties" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "main.json#/else", 269s # "error": "subschema is not valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/else" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s # 269s 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" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s 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" { 269s # result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 269s # "error": "value is greater than 10", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$ref/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 269s # "error": "value is greater than 10", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$ref/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s 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" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s 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" { 269s # result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 269s # "error": "value is greater than 10", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$ref/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 269s # "error": "value is greater than 10", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$ref/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s 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" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s 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" { 269s # result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 269s # "error": "got string, not number", 269s # "instanceLocation": "", 269s # "keywordLocation": "/allOf/0/$ref/type" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 269s # "error": "got string, not number", 269s # "instanceLocation": "", 269s # "keywordLocation": "/allOf/0/oneOf/0/type" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf", 269s # "error": "no subschemas are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/allOf/0/oneOf" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 269s # "error": "subschema 0 is not valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/allOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 269s # "error": "got string, not number", 269s # "instanceLocation": "", 269s # "keywordLocation": "/allOf/0/$ref/type" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 269s # "error": "subschema 0 is not valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/allOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s # 269s ok 1019 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1020 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 269s # result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 269s # "error": "value is greater than 10", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$ref/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 269s # "error": "value is greater than 10", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$ref/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1021 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1022 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 269s # result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 269s # "error": "value is greater than 10", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$ref/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 269s # "error": "value is greater than 10", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$ref/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1023 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/enum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/enum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1024 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1025 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "$ref value is not a valid URI reference", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$defs/foo/$ref" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "$ref value is not a valid URI reference", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$defs/foo/$ref" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1026 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "$ref value is not a valid URI reference", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$defs/foo/$ref" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "$ref value is not a valid URI reference", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$defs/foo/$ref" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1027 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1028 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 269s # "error": "got string, not integer", 269s # "instanceLocation": "/list/0", 269s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 269s # "error": "subschema is not valid against all items", 269s # "instanceLocation": "/list", 269s # "keywordLocation": "/properties/list/$ref/items" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 269s # "error": "got string, not integer", 269s # "instanceLocation": "/list/0", 269s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 269s # "error": "subschema is not valid against all items", 269s # "instanceLocation": "/list", 269s # "keywordLocation": "/properties/list/$ref/items" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s # 269s ok 1029 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1030 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/1", 269s # "keywordLocation": "/items/multipleOf" 269s # }, 269s # { 269s # "error": "subschema is not valid against all items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/items" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/1", 269s # "keywordLocation": "/items/multipleOf" 269s # }, 269s # { 269s # "error": "subschema is not valid against all items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/items" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1031 - short-circuit.json: "prefixItems does not improperly short-circuit" - "single item is valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1032 - short-circuit.json: "prefixItems does not improperly short-circuit" - "second item is invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/1", 269s # "keywordLocation": "/prefixItems/1/multipleOf" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/1", 269s # "keywordLocation": "/prefixItems/1/multipleOf" 269s # }, 269s # { 269s # "error": "not all items are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/prefixItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1033 - short-circuit.json: "items does not improperly short-circuit" - "single additional item is valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1034 - short-circuit.json: "items does not improperly short-circuit" - "second additional item is invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/2", 269s # "keywordLocation": "/items/multipleOf" 269s # }, 269s # { 269s # "error": "subschema is not valid against all items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/items" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/2", 269s # "keywordLocation": "/items/multipleOf" 269s # }, 269s # { 269s # "error": "subschema is not valid against all items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/items" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1035 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "single item is valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1036 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "second item is invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/1", 269s # "keywordLocation": "/unevaluatedItems/multipleOf" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/1", 269s # "keywordLocation": "/unevaluatedItems/multipleOf" 269s # }, 269s # { 269s # "error": "subschema is not valid against all additional items", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedItems" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1037 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1038 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/beta", 269s # "keywordLocation": "/properties/beta/multipleOf" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/beta", 269s # "keywordLocation": "/properties/beta/multipleOf" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1039 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1040 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/beta", 269s # "keywordLocation": "/properties/beta" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/beta", 269s # "keywordLocation": "/properties/beta" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/properties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1041 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1042 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/beta", 269s # "keywordLocation": "/patternProperties/^b/multipleOf" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/beta", 269s # "keywordLocation": "/patternProperties/^b/multipleOf" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1043 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1044 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/beta", 269s # "keywordLocation": "/patternProperties/^b" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "property not permitted", 269s # "instanceLocation": "/beta", 269s # "keywordLocation": "/patternProperties/^b" 269s # }, 269s # { 269s # "error": "not all properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/patternProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1045 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1046 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/beta", 269s # "keywordLocation": "/additionalProperties/multipleOf" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/beta", 269s # "keywordLocation": "/additionalProperties/multipleOf" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/additionalProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1047 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "single property is valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1048 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "second property is invalid" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/beta", 269s # "keywordLocation": "/unevaluatedProperties/multipleOf" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is not a multiple of 2", 269s # "instanceLocation": "/beta", 269s # "keywordLocation": "/unevaluatedProperties/multipleOf" 269s # }, 269s # { 269s # "error": "not all additional properties are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/unevaluatedProperties" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s # 269s ok 1049 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1050 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "got string, not number", 269s # "instanceLocation": "", 269s # "keywordLocation": "/type" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "got string, not number", 269s # "instanceLocation": "", 269s # "keywordLocation": "/type" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1051 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "got object, not number", 269s # "instanceLocation": "", 269s # "keywordLocation": "/type" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "got object, not number", 269s # "instanceLocation": "", 269s # "keywordLocation": "/type" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1052 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "got array, not number", 269s # "instanceLocation": "", 269s # "keywordLocation": "/type" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "got array, not number", 269s # "instanceLocation": "", 269s # "keywordLocation": "/type" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s # 269s ok 1053 - vocabulary.json: "valid $vocabulary" - "a valid $vocabulary value" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s 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" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1055 - vocabulary.json: "use schema (invalid $vocabulary) as a metaschema" - "invalid $vocabulary value: wrong specification version" { 269s # result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core", 269s # "error": "\"https://json-schema.org/draft/2019-09/vocab/core\" uses draft2019-09, but the metaschema itself uses draft2020-12", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 269s # "error": "the first vocabulary (by evaluation_order) must be Core", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$schema/$vocabulary" 269s # }, 269s # { 269s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$schema" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core", 269s # "error": "\"https://json-schema.org/draft/2019-09/vocab/core\" uses draft2019-09, but the metaschema itself uses draft2020-12", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 269s # "error": "the first vocabulary (by evaluation_order) must be Core", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$schema/$vocabulary" 269s # }, 269s # { 269s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$schema" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1056 - vocabulary.json: "invalid $vocabulary (unknown URI), but not until we evaluate with this metaschema" - "invalid $vocabulary (unknown URI): register this metaschema" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1057 - vocabulary.json: "use schema (unknown URI) as a metaschema" - "invalid $vocabulary value: unknown URI" { 269s # result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 269s # "error": "\"https://foo.com\" is not a known vocabulary", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 269s # }, 269s # { 269s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$schema" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 269s # "error": "\"https://foo.com\" is not a known vocabulary", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 269s # }, 269s # { 269s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 269s # "instanceLocation": "", 269s # "keywordLocation": "/$schema" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1058 - vocabulary.json: "custom metaschema with format-assertion: false" - "custom metaschema is loaded" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1059 - vocabulary.json: "custom metaschema with format-assertion: true" - "custom metaschema is loaded" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1060 - vocabulary.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: valid string" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1061 - vocabulary.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: invalid string" { 269s # result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 269s # "error": "not a valid ipv4", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 269s # "error": "not a valid ipv4", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 1062 - vocabulary.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: valid string" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 1063 - vocabulary.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: invalid string" { 269s # result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 269s # "error": "not a valid ipv4", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 269s # "error": "not a valid ipv4", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s # 269s # generated with: Test::JSON::Schema::Acceptance 1.029 269s # specification version: draft2020-12 269s # using custom test directory: t/additional-tests-draft2020-12 269s # optional tests included: yes 269s # 269s # filename pass todo-fail fail 269s # --------------------------------------------------------------- 269s # anchor.json 2 0 0 269s # annotation-collection.json 10 0 0 269s # badRef.json 3 0 0 269s # dynamicRef.json 7 0 0 269s # faux-buggy-schemas.json 2 0 0 269s # format-date-time.json 4 0 0 269s # format-date.json 1 0 0 269s # format-duration.json 9 0 0 269s # format-ipv4.json 4 0 0 269s # format-ipv6.json 17 0 0 269s # format-relative-json-pointer.json 7 0 0 269s # format-time.json 13 0 0 269s # formats.json 4 0 0 269s # id.json 6 0 0 269s # integers.json 29 0 0 269s # keyword-independence.json 884 0 0 269s # loose-types-const-enum.json 8 0 0 269s # recursive-dynamic.json 2 0 0 269s # ref-and-id.json 6 0 0 269s # ref.json 10 0 0 269s # short-circuit.json 20 0 0 269s # unknownKeyword.json 4 0 0 269s # vocabulary.json 11 0 0 269s # --------------------------------------------------------------- 269s # TOTAL 1063 0 0 269s # 269s # Congratulations, all non-optional tests are passing! 269s # 269s ok 1064 - no leaks in the main evaluator object 269s ok 1065 - no leaks in the short-circuiting evaluator object 269s ok 1066 - got unsupported keyword warnings 269s 1..1066 269s ok 269s t/additional-tests-draft4.t ............. 269s # 269s # AUTHOR_TESTING: 269s # AUTOMATED_TESTING: 1 269s # EXTENDED_TESTING: 269s # NO_TODO: 269s # TEST_DIR: 269s # NO_SHORT_CIRCUIT: 269s # 269s # running tests in /tmp/autopkgtest.Ge9z6k/autopkgtest_tmp/smokewgxowV/t/additional-tests-draft4 against draft4... 269s # 269s ok 1 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 2 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 3 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid date-time string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid date-time string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 4 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid date-time string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid date-time string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s # 269s ok 5 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv4 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv4 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 6 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv4 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv4 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 7 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 8 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv4 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv4 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s # 269s ok 9 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 10 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 11 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 12 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 13 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 14 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 15 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 16 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 17 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 18 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 19 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 20 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 21 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv6 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv6 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 22 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv6 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv6 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 23 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv6 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv6 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 24 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv6 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv6 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 25 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv6 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "not a valid ipv6 string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/format" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s # 269s ok 26 - id.json: "weird but valid use of non-empty plain name fragment in id" - "valid case, number" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 27 - id.json: "weird but valid use of non-empty plain name fragment in id" - "valid case, string" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 28 - id.json: "weird but valid use of non-empty plain name fragment in id" - "invalid case" { 269s # result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "https://example.com/def1#/type", 269s # "error": "got array, not number", 269s # "instanceLocation": "", 269s # "keywordLocation": "/anyOf/0/$ref/type" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "https://example.com/def2#/type", 269s # "error": "got array, not string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/anyOf/1/$ref/type" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "https://example.com/draft4-id-and-anchor#/anyOf", 269s # "error": "no subschemas are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/anyOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "absoluteKeywordLocation": "https://example.com/def1#/type", 269s # "error": "got array, not number", 269s # "instanceLocation": "", 269s # "keywordLocation": "/anyOf/0/$ref/type" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "https://example.com/def2#/type", 269s # "error": "got array, not string", 269s # "instanceLocation": "", 269s # "keywordLocation": "/anyOf/1/$ref/type" 269s # }, 269s # { 269s # "absoluteKeywordLocation": "https://example.com/draft4-id-and-anchor#/anyOf", 269s # "error": "no subschemas are valid", 269s # "instanceLocation": "", 269s # "keywordLocation": "/anyOf" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s # 269s ok 29 - integers.json: "type checks" - "beyond int64 lower boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 30 - integers.json: "type checks" - "int64 lower boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 31 - integers.json: "type checks" - "beyond int32 lower boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 32 - integers.json: "type checks" - "int32 lower boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 33 - integers.json: "type checks" - "zero" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 34 - integers.json: "type checks" - "int32 upper boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 35 - integers.json: "type checks" - "beyond int32 upper boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 36 - integers.json: "type checks" - "upper int64 boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 37 - integers.json: "type checks" - "beyond int64 upper boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 38 - integers.json: "int32 range checks" - "beyond lower boundary" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than -2147483648", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than -2147483648", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 39 - integers.json: "int32 range checks" - "lower boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 40 - integers.json: "int32 range checks" - "zero" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 41 - integers.json: "int32 range checks" - "upper boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 42 - integers.json: "int32 range checks" - "beyond upper boundary" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2147483647", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 2147483647", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 43 - integers.json: "int64 range checks" - "beyond lower boundary" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than -9223372036854775808", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is less than -9223372036854775808", 269s # "instanceLocation": "", 269s # "keywordLocation": "/minimum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 44 - integers.json: "int64 range checks" - "lower boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 45 - integers.json: "int64 range checks" - "zero" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 46 - integers.json: "int64 range checks" - "upper boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 47 - integers.json: "int64 range checks" - "beyond upper boundary" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 9223372036854775807", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value is greater than 9223372036854775807", 269s # "instanceLocation": "", 269s # "keywordLocation": "/maximum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 48 - integers.json: "equality checks" - "beyond int64 lower boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 49 - integers.json: "equality checks" - "int64 lower boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 50 - integers.json: "equality checks" - "beyond int32 lower boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 51 - integers.json: "equality checks" - "int32 lower boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 52 - integers.json: "equality checks" - "zero" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 53 - integers.json: "equality checks" - "one" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "value does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/enum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "value does not match", 269s # "instanceLocation": "", 269s # "keywordLocation": "/enum" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s ok 54 - integers.json: "equality checks" - "int32 upper boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 55 - integers.json: "equality checks" - "beyond int32 upper boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 56 - integers.json: "equality checks" - "int64 upper boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 57 - integers.json: "equality checks" - "beyond int64 upper boundary" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s # 269s ok 58 - type.json: "number" - "an integer is a number" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 59 - type.json: "number" - "a float with zero fractional part is a number" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 60 - type.json: "integers" - "an integer is an integer" { 269s # result: { 269s # "valid": true 269s # } 269s # short-circuited result: { 269s # "valid": true 269s # } 269s ok 1 - test passes: data is valid: true 269s 1..1 269s } 269s ok 61 - type.json: "integers" - "a float with zero fractional part is not an integer" { 269s # result: { 269s # "errors": [ 269s # { 269s # "error": "got number, not integer", 269s # "instanceLocation": "", 269s # "keywordLocation": "/type" 269s # } 269s # ], 269s # "valid": false 269s # } 269s # short-circuited result: { 269s # "errors": [ 269s # { 269s # "error": "got number, not integer", 269s # "instanceLocation": "", 269s # "keywordLocation": "/type" 269s # } 269s # ], 269s # "valid": false 269s # } 269s ok 1 - test passes: data is valid: false 269s 1..1 269s } 269s # 269s # generated with: Test::JSON::Schema::Acceptance 1.029 269s # specification version: draft4 269s # using custom test directory: t/additional-tests-draft4 269s # optional tests included: yes 269s # 269s # filename pass todo-fail fail 269s # --------------------------------------------------------------- 269s # format-date-time.json 4 0 0 269s # format-ipv4.json 4 0 0 269s # format-ipv6.json 17 0 0 269s # id.json 3 0 0 269s # integers.json 29 0 0 269s # type.json 4 0 0 269s # --------------------------------------------------------------- 269s # TOTAL 61 0 0 269s # 269s # Congratulations, all non-optional tests are passing! 269s # 269s ok 62 - no leaks in the main evaluator object 269s ok 63 - no leaks in the short-circuiting evaluator object 269s 1..63 269s ok 277s t/additional-tests-draft7.t ............. 277s # 277s # AUTHOR_TESTING: 277s # AUTOMATED_TESTING: 1 277s # EXTENDED_TESTING: 277s # NO_TODO: 277s # TEST_DIR: 277s # NO_SHORT_CIRCUIT: 277s # 277s # running tests in /tmp/autopkgtest.Ge9z6k/autopkgtest_tmp/smokewgxowV/t/additional-tests-draft7 against draft7... 277s # 277s ok 1 - badRef.json: "good references in schemas" - "this data is never used" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 2 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "$ref value is not a valid URI reference", 277s # "instanceLocation": "", 277s # "keywordLocation": "/then/$ref" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "$ref value is not a valid URI reference", 277s # "instanceLocation": "", 277s # "keywordLocation": "/then/$ref" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 3 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "$ref value is not a valid URI reference", 277s # "instanceLocation": "", 277s # "keywordLocation": "/then/$ref" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "$ref value is not a valid URI reference", 277s # "instanceLocation": "", 277s # "keywordLocation": "/then/$ref" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 4 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 5 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 277s # result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 277s # "error": "got string, not integer", 277s # "instanceLocation": "", 277s # "keywordLocation": "/anyOf/0/type" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 277s # "error": "got string, not integer", 277s # "instanceLocation": "", 277s # "keywordLocation": "/anyOf/1/type" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/anyOf/2/const" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/anyOf/3/enum" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 277s # "error": "no subschemas are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/anyOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 277s # "error": "got string, not integer", 277s # "instanceLocation": "", 277s # "keywordLocation": "/anyOf/0/type" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 277s # "error": "got string, not integer", 277s # "instanceLocation": "", 277s # "keywordLocation": "/anyOf/1/type" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/anyOf/2/const" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/anyOf/3/enum" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 277s # "error": "no subschemas are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/anyOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 6 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 7 - format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 8 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid date-time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid date-time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 9 - format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid date-time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid date-time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 10 - format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid date string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid date string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 11 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid ipv4 string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid ipv4 string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 12 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid ipv4 string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid ipv4 string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 13 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 14 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid ipv4 string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid ipv4 string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 15 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 16 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 17 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 18 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 19 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid relative-json-pointer string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid relative-json-pointer string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 20 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid relative-json-pointer string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid relative-json-pointer string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 21 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid relative-json-pointer string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid relative-json-pointer string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 22 - format-time.json: "validation of time strings" - "valid leap second, Zulu" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 23 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 24 - format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 25 - format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 26 - format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 27 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 28 - format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 29 - format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 30 - format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 31 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 32 - format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 33 - format-time.json: "validation of time strings" - "no time offset" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 34 - format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "not a valid time string", 277s # "instanceLocation": "", 277s # "keywordLocation": "/format" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 35 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 36 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 277s # result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else/$ref/const" 277s # }, 277s # { 277s # "error": "subschema is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else/$ref/const" 277s # }, 277s # { 277s # "error": "subschema is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 37 - id.json: "non-schema object containing an anchor property" - "skip traversing definition for a valid result" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 38 - id.json: "non-schema object containing an anchor property" - "const at const_not_anchor does not match" { 277s # result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else/$ref/const" 277s # }, 277s # { 277s # "error": "subschema is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else/$ref/const" 277s # }, 277s # { 277s # "error": "subschema is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 39 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "$id cannot be empty", 277s # "instanceLocation": "", 277s # "keywordLocation": "/$id" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "$id cannot be empty", 277s # "instanceLocation": "", 277s # "keywordLocation": "/$id" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 40 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "$id cannot be empty", 277s # "instanceLocation": "", 277s # "keywordLocation": "/$id" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "$id cannot be empty", 277s # "instanceLocation": "", 277s # "keywordLocation": "/$id" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 41 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "$id cannot be empty", 277s # "instanceLocation": "", 277s # "keywordLocation": "/$id" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "$id cannot be empty", 277s # "instanceLocation": "", 277s # "keywordLocation": "/$id" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 42 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "$id cannot be empty", 277s # "instanceLocation": "", 277s # "keywordLocation": "/$id" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "$id cannot be empty", 277s # "instanceLocation": "", 277s # "keywordLocation": "/$id" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 43 - id.json: "bad anchor syntax" - "draft7 $id passes through to $anchor" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "$id value is not a valid URI reference", 277s # "instanceLocation": "", 277s # "keywordLocation": "/$id" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "$id value is not a valid URI reference", 277s # "instanceLocation": "", 277s # "keywordLocation": "/$id" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 44 - integers.json: "type checks" - "beyond int64 lower boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 45 - integers.json: "type checks" - "int64 lower boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 46 - integers.json: "type checks" - "beyond int32 lower boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 47 - integers.json: "type checks" - "int32 lower boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 48 - integers.json: "type checks" - "zero" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 49 - integers.json: "type checks" - "int32 upper boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 50 - integers.json: "type checks" - "beyond int32 upper boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 51 - integers.json: "type checks" - "upper int64 boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 52 - integers.json: "type checks" - "beyond int64 upper boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 53 - integers.json: "int32 range checks" - "beyond lower boundary" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than -2147483648", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than -2147483648", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 54 - integers.json: "int32 range checks" - "lower boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 55 - integers.json: "int32 range checks" - "zero" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 56 - integers.json: "int32 range checks" - "upper boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 57 - integers.json: "int32 range checks" - "beyond upper boundary" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2147483647", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2147483647", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 58 - integers.json: "int64 range checks" - "beyond lower boundary" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than -9223372036854775808", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than -9223372036854775808", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 59 - integers.json: "int64 range checks" - "lower boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 60 - integers.json: "int64 range checks" - "zero" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 61 - integers.json: "int64 range checks" - "upper boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 62 - integers.json: "int64 range checks" - "beyond upper boundary" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 9223372036854775807", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 9223372036854775807", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 63 - integers.json: "equality checks" - "beyond int64 lower boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 64 - integers.json: "equality checks" - "int64 lower boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 65 - integers.json: "equality checks" - "beyond int32 lower boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 66 - integers.json: "equality checks" - "int32 lower boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 67 - integers.json: "equality checks" - "zero" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 68 - integers.json: "equality checks" - "one" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/enum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/enum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 69 - integers.json: "equality checks" - "int32 upper boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 70 - integers.json: "equality checks" - "beyond int32 upper boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 71 - integers.json: "equality checks" - "int64 upper boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 72 - integers.json: "equality checks" - "beyond int64 upper boundary" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s # 277s ok 73 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 74 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 75 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 76 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 77 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 78 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 79 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 80 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 81 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 82 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 83 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 84 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 85 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 86 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 87 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 88 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 89 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 90 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 91 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 92 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 93 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 94 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 95 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 96 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 97 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 98 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 99 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 100 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 101 - keyword-independence.json: "items + maximum" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 102 - keyword-independence.json: "items + maximum" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 103 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 104 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 105 - keyword-independence.json: "items + minimum" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 106 - keyword-independence.json: "items + minimum" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 107 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 108 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 109 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 110 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 111 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 112 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 113 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 114 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 115 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 116 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 117 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 118 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 119 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 120 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 121 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 122 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 123 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 124 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 125 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 126 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 127 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 128 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 129 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 130 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 131 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 132 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 133 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 134 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 135 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 136 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 137 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 138 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 139 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 140 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 141 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 142 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 143 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 144 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 145 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 146 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 147 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 148 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 149 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 150 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 151 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 152 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 153 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 154 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 155 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 156 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 157 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 158 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 159 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 160 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 161 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 162 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 163 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 164 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 165 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 166 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 167 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 168 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 169 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 170 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 171 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 172 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 173 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 174 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 175 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 176 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 177 - keyword-independence.json: "contains + dependencies" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 178 - keyword-independence.json: "contains + dependencies" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 179 - keyword-independence.json: "contains + dependencies" - "object, dependencies invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 180 - keyword-independence.json: "contains + dependencies" - "object, dependencies valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 181 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 182 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 183 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 184 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 185 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 186 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 187 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 188 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 189 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 190 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 191 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 192 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 193 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 194 - keyword-independence.json: "contains + properties" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 195 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 196 - keyword-independence.json: "contains + properties" - "object, properties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 197 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 198 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 199 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 200 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 201 - keyword-independence.json: "contains + required" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 202 - keyword-independence.json: "contains + required" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 203 - keyword-independence.json: "contains + required" - "object, required invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 204 - keyword-independence.json: "contains + required" - "object, required valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 205 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 206 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 207 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 208 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 209 - keyword-independence.json: "dependencies + items" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 210 - keyword-independence.json: "dependencies + items" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 211 - keyword-independence.json: "dependencies + items" - "object, dependencies invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 212 - keyword-independence.json: "dependencies + items" - "object, dependencies valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 213 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 214 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 215 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 216 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 217 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 218 - keyword-independence.json: "items + minProperties" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 219 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 220 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 221 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 222 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 223 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 224 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 225 - keyword-independence.json: "items + properties" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 226 - keyword-independence.json: "items + properties" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 227 - keyword-independence.json: "items + properties" - "object, properties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 228 - keyword-independence.json: "items + properties" - "object, properties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 229 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 230 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 231 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 232 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 233 - keyword-independence.json: "items + required" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 234 - keyword-independence.json: "items + required" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 235 - keyword-independence.json: "items + required" - "object, required invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 236 - keyword-independence.json: "items + required" - "object, required valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 237 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 238 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 239 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 240 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 241 - keyword-independence.json: "dependencies + maxItems" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 242 - keyword-independence.json: "dependencies + maxItems" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 243 - keyword-independence.json: "dependencies + maxItems" - "object, dependencies invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 244 - keyword-independence.json: "dependencies + maxItems" - "object, dependencies valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 245 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 246 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 247 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 248 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 249 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 250 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 251 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 252 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 253 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 254 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 255 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 256 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 257 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 258 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 259 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 260 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 261 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 262 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 263 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 264 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 265 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 266 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 267 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 268 - keyword-independence.json: "maxItems + required" - "object, required valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 269 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 270 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 271 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 272 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 273 - keyword-independence.json: "dependencies + minItems" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 274 - keyword-independence.json: "dependencies + minItems" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 275 - keyword-independence.json: "dependencies + minItems" - "object, dependencies invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 276 - keyword-independence.json: "dependencies + minItems" - "object, dependencies valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 277 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 278 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 279 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 280 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 281 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 282 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 283 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 284 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 285 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 286 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 287 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 288 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 289 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 290 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 291 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 292 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 293 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 294 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 295 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 296 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 297 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 298 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 299 - keyword-independence.json: "minItems + required" - "object, required invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 300 - keyword-independence.json: "minItems + required" - "object, required valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 301 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 302 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 303 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 304 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 305 - keyword-independence.json: "dependencies + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 306 - keyword-independence.json: "dependencies + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 307 - keyword-independence.json: "dependencies + uniqueItems" - "object, dependencies invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 308 - keyword-independence.json: "dependencies + uniqueItems" - "object, dependencies valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 309 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 310 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 311 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 312 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 313 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 314 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 315 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 316 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 317 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 318 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 319 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 320 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 321 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 322 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 323 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 324 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 325 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 326 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 327 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 328 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 329 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 330 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 331 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 332 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 333 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 334 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 335 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 336 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 337 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 338 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 339 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 340 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 341 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is not valid against any item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/contains" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 342 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 343 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 344 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 345 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 346 - keyword-independence.json: "items + maxLength" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 347 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 348 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 349 - keyword-independence.json: "items + minLength" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 350 - keyword-independence.json: "items + minLength" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 351 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 352 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 353 - keyword-independence.json: "items + pattern" - "array, items invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "item not permitted", 277s # "instanceLocation": "/0", 277s # "keywordLocation": "/items/0" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 354 - keyword-independence.json: "items + pattern" - "array, items valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 355 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 356 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 357 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 358 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 359 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 360 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 361 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 362 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 363 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 364 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 365 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has more than 1 item", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 366 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 367 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 368 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 369 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 370 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 371 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 372 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 373 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 374 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 375 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 376 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 377 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "array has fewer than 2 items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 378 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 379 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 380 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 381 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 382 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 383 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 384 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 385 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 386 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 387 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 388 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 389 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "items at indices 0 and 1 are not unique", 277s # "instanceLocation": "", 277s # "keywordLocation": "/uniqueItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 390 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 391 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 392 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 393 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 394 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 395 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 396 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 397 - keyword-independence.json: "dependencies + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 398 - keyword-independence.json: "dependencies + exclusiveMaximum" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 399 - keyword-independence.json: "dependencies + exclusiveMaximum" - "object, dependencies invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 400 - keyword-independence.json: "dependencies + exclusiveMaximum" - "object, dependencies valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 401 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 402 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 403 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 404 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 405 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 406 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 407 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 408 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 409 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 410 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 411 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 412 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 413 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 414 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 415 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 416 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 417 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 418 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 419 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 420 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 421 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 422 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 423 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 424 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 425 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 426 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 427 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 428 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 429 - keyword-independence.json: "dependencies + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 430 - keyword-independence.json: "dependencies + exclusiveMinimum" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 431 - keyword-independence.json: "dependencies + exclusiveMinimum" - "object, dependencies invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 432 - keyword-independence.json: "dependencies + exclusiveMinimum" - "object, dependencies valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 433 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 434 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 435 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 436 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 437 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 438 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 439 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 440 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 441 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 442 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 443 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 444 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 445 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 446 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 447 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 448 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 449 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 450 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 451 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 452 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 453 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 454 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 455 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 456 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 457 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 458 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 459 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 460 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 461 - keyword-independence.json: "dependencies + maximum" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 462 - keyword-independence.json: "dependencies + maximum" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 463 - keyword-independence.json: "dependencies + maximum" - "object, dependencies invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 464 - keyword-independence.json: "dependencies + maximum" - "object, dependencies valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 465 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 466 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 467 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 468 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 469 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 470 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 471 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 472 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 473 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 474 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 475 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 476 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 477 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 478 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 479 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 480 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 481 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 482 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 483 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 484 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 485 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 486 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 487 - keyword-independence.json: "maximum + required" - "object, required invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 488 - keyword-independence.json: "maximum + required" - "object, required valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 489 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 490 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 491 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 492 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 493 - keyword-independence.json: "dependencies + minimum" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 494 - keyword-independence.json: "dependencies + minimum" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 495 - keyword-independence.json: "dependencies + minimum" - "object, dependencies invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 496 - keyword-independence.json: "dependencies + minimum" - "object, dependencies valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 497 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 498 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 499 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 500 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 501 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 502 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 503 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 504 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 505 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 506 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 507 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 508 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 509 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 510 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 511 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 512 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 513 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 514 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 515 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 516 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 517 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 518 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 519 - keyword-independence.json: "minimum + required" - "object, required invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 520 - keyword-independence.json: "minimum + required" - "object, required valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 521 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 522 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 523 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 524 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 525 - keyword-independence.json: "dependencies + multipleOf" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 526 - keyword-independence.json: "dependencies + multipleOf" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 527 - keyword-independence.json: "dependencies + multipleOf" - "object, dependencies invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 528 - keyword-independence.json: "dependencies + multipleOf" - "object, dependencies valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 529 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 530 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 531 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 532 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 533 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 534 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 535 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 536 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 537 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 538 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 539 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 540 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 541 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 542 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 543 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 544 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 545 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 546 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 547 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 548 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 549 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 550 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 551 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 552 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 553 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 554 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 555 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 556 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 557 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 558 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 559 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 560 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 561 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMaximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 562 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 563 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 564 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 565 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 566 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 567 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 568 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 569 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 570 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 571 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 572 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 573 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than or equal to 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/exclusiveMinimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 574 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 575 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 576 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 577 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 578 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 579 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 580 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 581 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 582 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 583 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 584 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 585 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maximum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 586 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 587 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 588 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 589 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 590 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 591 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 592 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 593 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 594 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 595 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 596 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 597 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minimum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 598 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 599 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 600 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 601 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 602 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 603 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 604 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 605 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 606 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 607 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 608 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 609 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/multipleOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 610 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 611 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 612 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 613 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 614 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 615 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 616 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 617 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 618 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 619 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 620 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 621 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 622 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 623 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 624 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 625 - keyword-independence.json: "dependencies + maxLength" - "object, dependencies invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 626 - keyword-independence.json: "dependencies + maxLength" - "object, dependencies valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 627 - keyword-independence.json: "dependencies + maxLength" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 628 - keyword-independence.json: "dependencies + maxLength" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 629 - keyword-independence.json: "dependencies + minLength" - "object, dependencies invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 630 - keyword-independence.json: "dependencies + minLength" - "object, dependencies valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 631 - keyword-independence.json: "dependencies + minLength" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 632 - keyword-independence.json: "dependencies + minLength" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 633 - keyword-independence.json: "dependencies + pattern" - "object, dependencies invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies/x" 277s # }, 277s # { 277s # "error": "not all dependencies are satisfied", 277s # "instanceLocation": "", 277s # "keywordLocation": "/dependencies" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 634 - keyword-independence.json: "dependencies + pattern" - "object, dependencies valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 635 - keyword-independence.json: "dependencies + pattern" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 636 - keyword-independence.json: "dependencies + pattern" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 637 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 638 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 639 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 640 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 641 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 642 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 643 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 644 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 645 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has more than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 646 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 647 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 648 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 649 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 650 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 651 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 652 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 653 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 654 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 655 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 656 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 657 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object has fewer than 1 property", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 658 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 659 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 660 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 661 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 662 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 663 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 664 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 665 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 666 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 667 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 668 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 669 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/no", 277s # "keywordLocation": "/patternProperties/no" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 670 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 671 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 672 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 673 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 674 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 675 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 676 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 677 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 678 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 679 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 680 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 681 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/properties/x" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 682 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 683 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 684 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 685 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 686 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 687 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 688 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 689 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 690 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 691 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 692 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 693 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "subschema is false", 277s # "instanceLocation": "/x", 277s # "keywordLocation": "/propertyNames" 277s # }, 277s # { 277s # "error": "not all property names are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/propertyNames" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 694 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 695 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 696 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 697 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 698 - keyword-independence.json: "maxLength + required" - "object, required valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 699 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is greater than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/maxLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 700 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 701 - keyword-independence.json: "minLength + required" - "object, required invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 702 - keyword-independence.json: "minLength + required" - "object, required valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 703 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "length is less than 2", 277s # "instanceLocation": "", 277s # "keywordLocation": "/minLength" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 704 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 705 - keyword-independence.json: "pattern + required" - "object, required invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "object is missing property: x", 277s # "instanceLocation": "", 277s # "keywordLocation": "/required" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 706 - keyword-independence.json: "pattern + required" - "object, required valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 707 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "pattern does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/pattern" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 708 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s # 277s ok 709 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value does not match", 277s # "instanceLocation": "/const_string", 277s # "keywordLocation": "/properties/const_string/const" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value does not match", 277s # "instanceLocation": "/const_string", 277s # "keywordLocation": "/properties/const_string/const" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 710 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 711 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 712 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value does not match", 277s # "instanceLocation": "/const_number", 277s # "keywordLocation": "/properties/const_number/const" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value does not match", 277s # "instanceLocation": "/const_number", 277s # "keywordLocation": "/properties/const_number/const" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 713 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value does not match", 277s # "instanceLocation": "/enum_string", 277s # "keywordLocation": "/properties/enum_string/enum" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value does not match", 277s # "instanceLocation": "/enum_string", 277s # "keywordLocation": "/properties/enum_string/enum" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 714 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 715 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 716 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value does not match", 277s # "instanceLocation": "/enum_number", 277s # "keywordLocation": "/properties/enum_number/enum" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value does not match", 277s # "instanceLocation": "/enum_number", 277s # "keywordLocation": "/properties/enum_number/enum" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 717 - not-an-anchor.json: "object that is not a schema containing an $anchor property" - "skip traversing definition for a valid result" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 718 - not-an-anchor.json: "object that is not a schema containing an $anchor property" - "const at const_not_anchor does not match" { 277s # result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else/$ref/const" 277s # }, 277s # { 277s # "error": "subschema is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else/$ref/const" 277s # }, 277s # { 277s # "error": "subschema is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 719 - not-an-id.json: "object that is not a schema containing an $id property" - "skip traversing definition for a valid result" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 720 - not-an-id.json: "object that is not a schema containing an $id property" - "const at const_not_id does not match" { 277s # result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else/$ref/const" 277s # }, 277s # { 277s # "error": "subschema is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else/$ref/const" 277s # }, 277s # { 277s # "error": "subschema is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/else" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 721 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination" - "data is valid against first definition" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 722 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination" - "data is invalid against first definition" { 277s # result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 277s # "error": "value is greater than 10", 277s # "instanceLocation": "", 277s # "keywordLocation": "/allOf/0/$ref/maximum" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "/ref-and-id2/base.json#/allOf", 277s # "error": "subschema 0 is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/allOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 277s # "error": "value is greater than 10", 277s # "instanceLocation": "", 277s # "keywordLocation": "/allOf/0/$ref/maximum" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "/ref-and-id2/base.json#/allOf", 277s # "error": "subschema 0 is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/allOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 723 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 724 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 277s # result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 277s # "error": "value is greater than 10", 277s # "instanceLocation": "", 277s # "keywordLocation": "/allOf/0/$ref/maximum" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "/ref1/base.json#/allOf", 277s # "error": "subschema 0 is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/allOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 277s # "error": "value is greater than 10", 277s # "instanceLocation": "", 277s # "keywordLocation": "/allOf/0/$ref/maximum" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "/ref1/base.json#/allOf", 277s # "error": "subschema 0 is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/allOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 725 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 726 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 277s # result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "/ref2/base.json#/definitions/bigint/maximum", 277s # "error": "value is greater than 10", 277s # "instanceLocation": "", 277s # "keywordLocation": "/allOf/0/$ref/maximum" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "/ref2/base.json#/allOf", 277s # "error": "subschema 0 is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/allOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "/ref2/base.json#/definitions/bigint/maximum", 277s # "error": "value is greater than 10", 277s # "instanceLocation": "", 277s # "keywordLocation": "/allOf/0/$ref/maximum" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "/ref2/base.json#/allOf", 277s # "error": "subschema 0 is not valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/allOf" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 727 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/enum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value does not match", 277s # "instanceLocation": "", 277s # "keywordLocation": "/enum" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 728 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 729 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "$ref value is not a valid URI reference", 277s # "instanceLocation": "", 277s # "keywordLocation": "/definitions/foo/$ref" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "$ref value is not a valid URI reference", 277s # "instanceLocation": "", 277s # "keywordLocation": "/definitions/foo/$ref" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 730 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "$ref value is not a valid URI reference", 277s # "instanceLocation": "", 277s # "keywordLocation": "/definitions/foo/$ref" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "$ref value is not a valid URI reference", 277s # "instanceLocation": "", 277s # "keywordLocation": "/definitions/foo/$ref" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 731 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 732 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 277s # "error": "got string, not integer", 277s # "instanceLocation": "/list/0", 277s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 277s # "error": "subschema is not valid against all items", 277s # "instanceLocation": "/list", 277s # "keywordLocation": "/properties/list/$ref/items" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 277s # "error": "got string, not integer", 277s # "instanceLocation": "/list/0", 277s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 277s # "error": "subschema is not valid against all items", 277s # "instanceLocation": "/list", 277s # "keywordLocation": "/properties/list/$ref/items" 277s # }, 277s # { 277s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 733 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 734 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "/1", 277s # "keywordLocation": "/items/multipleOf" 277s # }, 277s # { 277s # "error": "subschema is not valid against all items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "/1", 277s # "keywordLocation": "/items/multipleOf" 277s # }, 277s # { 277s # "error": "subschema is not valid against all items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 735 - short-circuit.json: "items (array form) does not improperly short-circuit" - "single item is valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 736 - short-circuit.json: "items (array form) does not improperly short-circuit" - "second item is invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "/1", 277s # "keywordLocation": "/items/1/multipleOf" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "/1", 277s # "keywordLocation": "/items/1/multipleOf" 277s # }, 277s # { 277s # "error": "not all items are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/items" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 737 - short-circuit.json: "additionalItems does not improperly short-circuit" - "single additional item is valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 738 - short-circuit.json: "additionalItems does not improperly short-circuit" - "second additional item is invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "/2", 277s # "keywordLocation": "/additionalItems/multipleOf" 277s # }, 277s # { 277s # "error": "subschema is not valid against all additional items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "/2", 277s # "keywordLocation": "/additionalItems/multipleOf" 277s # }, 277s # { 277s # "error": "subschema is not valid against all additional items", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalItems" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 739 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 740 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "/beta", 277s # "keywordLocation": "/properties/beta/multipleOf" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "/beta", 277s # "keywordLocation": "/properties/beta/multipleOf" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 741 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 742 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/beta", 277s # "keywordLocation": "/properties/beta" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/beta", 277s # "keywordLocation": "/properties/beta" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/properties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 743 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 744 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "/beta", 277s # "keywordLocation": "/patternProperties/^b/multipleOf" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "/beta", 277s # "keywordLocation": "/patternProperties/^b/multipleOf" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 745 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 746 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/beta", 277s # "keywordLocation": "/patternProperties/^b" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "property not permitted", 277s # "instanceLocation": "/beta", 277s # "keywordLocation": "/patternProperties/^b" 277s # }, 277s # { 277s # "error": "not all properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/patternProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 747 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 748 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "/beta", 277s # "keywordLocation": "/additionalProperties/multipleOf" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "value is not a multiple of 2", 277s # "instanceLocation": "/beta", 277s # "keywordLocation": "/additionalProperties/multipleOf" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s # 277s ok 749 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 750 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "got string, not number", 277s # "instanceLocation": "", 277s # "keywordLocation": "/type" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "got string, not number", 277s # "instanceLocation": "", 277s # "keywordLocation": "/type" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 751 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "got object, not number", 277s # "instanceLocation": "", 277s # "keywordLocation": "/type" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "got object, not number", 277s # "instanceLocation": "", 277s # "keywordLocation": "/type" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 752 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "got array, not number", 277s # "instanceLocation": "", 277s # "keywordLocation": "/type" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "got array, not number", 277s # "instanceLocation": "", 277s # "keywordLocation": "/type" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 753 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "match" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 754 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive match" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 755 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "mismatch" { 277s # result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/bar", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s # short-circuited result: { 277s # "errors": [ 277s # { 277s # "error": "additional property not permitted", 277s # "instanceLocation": "/bar", 277s # "keywordLocation": "/additionalProperties" 277s # }, 277s # { 277s # "error": "not all additional properties are valid", 277s # "instanceLocation": "", 277s # "keywordLocation": "/additionalProperties" 277s # } 277s # ], 277s # "valid": false 277s # } 277s ok 1 - test passes: data is valid: false 277s 1..1 277s } 277s ok 756 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive mismatch (but $dynamicRef is ignored)" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s # 277s ok 757 - vocabulary.json: "valid $vocabulary: everything is valid" - "a valid $vocabulary value" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 758 - vocabulary.json: "wrong specification version: but this is draft7" - "invalid $vocabulary value: wrong specification version" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s ok 759 - vocabulary.json: "but this is draft7" - "invalid $vocabulary value: unknown URI" { 277s # result: { 277s # "valid": true 277s # } 277s # short-circuited result: { 277s # "valid": true 277s # } 277s ok 1 - test passes: data is valid: true 277s 1..1 277s } 277s # 277s # generated with: Test::JSON::Schema::Acceptance 1.029 277s # specification version: draft7 277s # using custom test directory: t/additional-tests-draft7 277s # optional tests included: yes 277s # 277s # filename pass todo-fail fail 277s # --------------------------------------------------------------- 277s # badRef.json 3 0 0 277s # faux-buggy-schemas.json 2 0 0 277s # format-date-time.json 4 0 0 277s # format-date.json 1 0 0 277s # format-ipv4.json 4 0 0 277s # format-relative-json-pointer.json 7 0 0 277s # format-time.json 13 0 0 277s # id.json 9 0 0 277s # integers.json 29 0 0 277s # keyword-independence.json 636 0 0 277s # loose-types-const-enum.json 8 0 0 277s # not-an-anchor.json 2 0 0 277s # not-an-id.json 2 0 0 277s # ref-and-id.json 2 0 0 277s # ref.json 10 0 0 277s # short-circuit.json 16 0 0 277s # unknownKeyword.json 8 0 0 277s # vocabulary.json 3 0 0 277s # --------------------------------------------------------------- 277s # TOTAL 759 0 0 277s # 277s # Congratulations, all non-optional tests are passing! 277s # 277s ok 760 - no leaks in the main evaluator object 277s ok 761 - no leaks in the short-circuiting evaluator object 277s ok 762 - got unsupported keyword warnings 277s 1..762 277s ok 278s t/annotations.t ......................... 278s # Subtest: draft7 278s ok 1 - user cannot enable annotations for draft7 278s ok 2 - user cannot enable annotations for draft7 even as an override 278s 1..2 278s ok 1 - draft7 278s # Subtest: allOf 278s ok 1 - evaluation of the allOf keyword fails 278s ok 2 - failing allOf: state is correct after evaluating 278s ok 3 - evaluation of the allOf keyword succeeds 278s ok 4 - passing allOf: state is correct after evaluating 278s ok 5 - annotation collection can be turned off in evaluate() 278s ok 6 - ...but the value is still true on the object 278s ok 7 - collect_annotations defaults to false 278s ok 8 - annotation collection can be turned on in evaluate() also 278s 1..8 278s ok 2 - allOf 278s # Subtest: oneOf 278s ok 1 - evaluation of the oneOf keyword fails 278s ok 2 - failing oneOf: state is correct after evaluating 278s ok 3 - evaluation of the oneOf keyword succeeds 278s ok 4 - passing oneOf: state is correct after evaluating 278s 1..4 278s ok 3 - oneOf 278s # Subtest: not 278s ok 1 - evaluation of the not keyword fails 278s ok 2 - failing not: state is correct after evaluating 278s ok 3 - evaluation of the not keyword fails 278s ok 4 - failing not: state is correct after evaluating (annotations will be ultimately discarded) 278s ok 5 - evaluation of the not keyword succeeds 278s ok 6 - passing not: state is correct after evaluating 278s ok 7 - annotations are still collected inside a "not", otherwise the unevaluatedProperties would have returned false 278s 1..7 278s ok 4 - not 278s # Subtest: prefixItems 278s ok 1 - no items means that "prefixItems" succeeds 278s ok 2 - no items: no annotation is produced by prefixItems 278s ok 3 - one item 278s ok 4 - passing prefixItems: one item is annotated 278s ok 5 - two items, one failing 278s ok 6 - failing prefixItems still collects annotations 278s 1..6 278s ok 5 - prefixItems 278s # Subtest: schema-items 278s ok 1 - no items means that "items" succeeds 278s ok 2 - no items: no annotation is produced by items 278s ok 3 - one item 278s ok 4 - passing items: one item is annotated 278s ok 5 - two items, one failing 278s ok 6 - failing items still collects annotations 278s 1..6 278s ok 6 - schema-items 278s # Subtest: additionalItems 278s ok 1 - no items means that "additionalItems" succeeds 278s ok 2 - no items: no annotation is produced by additionaltems 278s ok 3 - one item 278s ok 4 - additionalItems does nothing without items 278s 1..4 278s ok 7 - additionalItems 278s # Subtest: properties 278s ok 1 - no items means that "properties" succeeds 278s ok 2 - no properties: annotation is still produced by properties 278s ok 3 - one property 278s ok 4 - passing properties: one property is annotated 278s ok 5 - two properties, one failing 278s ok 6 - failing properties still collects annotations 278s 1..6 278s ok 8 - properties 278s # Subtest: patternProperties 278s ok 1 - no items means that "patternProperties" succeeds 278s ok 2 - no pProperties: annotation is still produced by patternProperties 278s ok 3 - one property 278s ok 4 - passing properties: one property is annotated 278s ok 5 - two properties, one failing 278s ok 6 - failing patternProperties still collects annotations 278s 1..6 278s ok 9 - patternProperties 278s # Subtest: additionalProperties 278s ok 1 - no items means that "additionalProperties" succeeds 278s ok 2 - no properties: no annotation is produced by additionalProperties 278s ok 3 - one property 278s ok 4 - passing additionalProperties: one property is annotated 278s ok 5 - two properties, one failing 278s ok 6 - failing properties still collects annotations 278s 1..6 278s ok 10 - additionalProperties 278s # Subtest: unevaluatedProperties 278s ok 1 - no items means that "unevaluatedProperties" succeeds 278s ok 2 - no properties: no annotation is produced by unevaluatedProperties 278s ok 3 - one property 278s ok 4 - passing unevaluatedProperties: one property is annotated 278s ok 5 - two properties, one failing 278s ok 6 - failing unevaluatedProperties still collects annotations 278s 1..6 278s ok 11 - unevaluatedProperties 278s # Subtest: collect_annotations and unevaluated keywords 278s ok 1 - when "collect_annotations" is explicitly set to false, unevaluatedItems can still be used (valid result, no annotations in result) 278s ok 2 - when "collect_annotations" is explicitly set to false, unevaluatedItems can still be used (invalid result) 278s ok 3 - when "collect_annotations" is explicitly set to false, unevaluatedProperties can still be used (valid result, no annotations) 278s ok 4 - when "collect_annotations" is explicitly set to false, unevaluatedProperties can still be used (invalid result) 278s ok 5 - when "collect_annotations" is explicitly set to false, unevaluatedProperties still be used, even in other documents (valid result) 278s ok 6 - when "collect_annotations" is explicitly set to false, unevaluatedProperties still be used, even in other documents (invalid result) 278s ok 7 - when "collect_annotations" is set to true, unevaluatedItems works, and annotations are returned 278s ok 8 - when "collect_annotations" is set to true, unevaluatedProperties passes, and annotations are returned 278s ok 9 - when "collect_annotations" is not set, unevaluatedItems still works, but annotations are not returned 278s ok 10 - when "collect_annotations" is not set, unevaluatedProperties still works, but annotations are not returned 278s ok 11 - ... still works when unevaluated keywords are in a separate document 278s ok 12 - items.json does not need collect_annotations => 1 to evaluate itself 278s ok 13 - properties.json does not need collect_annotations => 1 to evaluate itself 278s ok 14 - referenced schemas still produce annotations internally when needed, even when not required to evaluate themselves in isolation 278s 1..14 278s ok 12 - collect_annotations and unevaluated keywords 278s # Subtest: annotate unknown keywords 278s ok 1 - no annotations even when collect_annotations is false 278s ok 2 - unknown keywords are collected as annotations 278s ok 3 - "unknown" keyword is set on the annotation objects for unknown keywords 278s ok 4 - no annotations from unknown keywords in draft2019-09 278s 1..4 278s ok 13 - annotate unknown keywords 278s # Subtest: items + additionalItems, prefixItems + items 278s ok 1 - schema-based items + additionalItems 278s ok 2 - prefixItems + schema-based items 278s 1..2 278s ok 14 - items + additionalItems, prefixItems + items 278s 1..14 278s ok 279s t/boolean-data.t ........................ 279s # Subtest: strict booleans (default) 279s ok 1 - in data, bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ) is a boolean 279s ok 2 - in data, bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) is a boolean 279s ok 3 - correct error generated from type for undef 279s ok 4 - correct error generated from type for 0 279s ok 5 - correct error generated from type for 1 279s ok 6 - correct error generated from type for '0' 279s ok 7 - correct error generated from type for '1' 279s ok 8 - correct error generated from type for 'false' 279s ok 9 - correct error generated from type for 'true' 279s ok 10 - correct error generated from type for \0 279s ok 11 - correct error generated from type for \1 279s ok 12 - in data, undef not is a boolean 279s ok 13 - in data, 0 not is a boolean 279s ok 14 - in data, 1 not is a boolean 279s ok 15 - in data, '0' not is a boolean 279s ok 16 - in data, '1' not is a boolean 279s ok 17 - in data, 'false' not is a boolean 279s ok 18 - in data, 'true' not is a boolean 279s ok 19 - in data, \0 not is a boolean 279s ok 20 - in data, \1 not is a boolean 279s 1..20 279s ok 1 - strict booleans (default) 279s # Subtest: scalarref_booleans = 1 279s ok 1 - in data, bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ) is a boolean 279s ok 2 - in data, bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) is a boolean 279s ok 3 - in data, \0 is a boolean 279s ok 4 - in data, \1 is a boolean 279s ok 5 - correct error generated from type for ['null',undef] 279s ok 6 - correct error generated from type for ['integer',0] 279s ok 7 - correct error generated from type for ['integer',1] 279s ok 8 - correct error generated from type for ['string','0'] 279s ok 9 - correct error generated from type for ['string','1'] 279s ok 10 - correct error generated from type for ['string','false'] 279s ok 11 - correct error generated from type for ['string','true'] 279s ok 12 - items are all considered unique when types differ, even when perl treats them similarly 279s ok 13 - scalarrefs compare as identical to their counterpart booleans 279s ok 14 - scalarrefs compare as identical to their counterpart booleans 279s ok 15 - scalarrefs compare as identical to their counterpart booleans 279s ok 16 - scalarrefs compare as identical to their counterpart booleans 279s 1..16 279s ok 2 - scalarref_booleans = 1 279s 1..2 279s ok 280s t/boolean-schemas.t ..................... 280s ok 1 - schema: false evaluates to: false 280s ok 2 - invalid result structure looks correct 280s ok 3 - no exceptions in evaluate 280s ok 4 - schema: true evaluates to: true 280s ok 5 - invalid result structure looks correct 280s ok 6 - no exceptions in evaluate 280s ok 7 - schema: {} evaluates to: true 280s ok 8 - invalid result structure looks correct 280s ok 9 - no exceptions in evaluate 280s ok 10 - schema: 0 evaluates to: false 280s ok 11 - invalid result structure looks correct 280s ok 12 - no exceptions in evaluate 280s ok 13 - schema: 1 evaluates to: false 280s ok 14 - invalid result structure looks correct 280s ok 15 - no exceptions in evaluate 280s ok 16 - schema: false evaluates to: false 280s ok 17 - invalid result structure looks correct 280s ok 18 - no exceptions in evaluate 280s ok 19 - schema: true evaluates to: false 280s ok 20 - invalid result structure looks correct 280s ok 21 - no exceptions in evaluate 280s ok 22 - invalid schema type results in error 280s ok 23 - scalarref for schema results in error, even when scalarref_booleans is true 280s 1..23 280s ok 281s t/cached-metaschemas.t .................. 281s # Subtest: load cached metaschema 281s ok 1 - this resource is not yet known 281s ok 2 - loaded metaschema from sharedir cache 281s ok 3 - this resource is now in the resource index 281s 1..3 281s ok 1 - load cached metaschema 281s # Subtest: resource collision with cached metaschema 281s ok 1 - cannot introduce another schema whose id collides with a cached schema, even if it isn't loaded yet 281s 1..1 281s ok 2 - resource collision with cached metaschema 281s 1..2 281s ok 282s t/callbacks.t ........................... 282s # Subtest: evaluation callbacks 282s ok 1 - evaluation was successful 282s ok 2 - identified all data paths where a $ref was used 282s ok 3 - evaluation was not successful 282s ok 4 - no callbacks on failure: innermost $ref failed, so all other $refs failed too 282s ok 5 - evaluation was successful 282s ok 6 - successful subschemas have callbacks called, but not failed subschemas 282s 1..6 282s ok 1 - evaluation callbacks 282s # Subtest: callbacks for keywords without eval subs 282s ok 1 - evaluation was successful 282s ok 2 - callbacks are triggered for keywords even when they lack evaluation subs 282s 1..2 282s ok 2 - callbacks for keywords without eval subs 282s # Subtest: callbacks that produce errors 282s ok 1 - result object contains the callback error, and the other errors 282s ok 2 - result object contains the callback error, and short-circuits execution 282s 1..2 282s ok 3 - callbacks that produce errors 282s 1..3 282s ok 283s t/content-encoding.t .................... 283s # Subtest: unrecognized encoding formats do not result in errors, when not asserting 283s ok 1 - in evaluate(), annotations are collected and no validation is performed 283s 1..1 283s ok 1 - unrecognized encoding formats do not result in errors, when not asserting 283s # Subtest: media_type and encoding handlers 283s ok 1 - upper-cased names are not accepted 283s ok 2 - application/json media_type decoder 283s ok 3 - */* has no default match 283s ok 4 - default text/plain media_type decoder 283s ok 5 - getter uses the casefolded name 283s ok 6 - getter matches to wildcard entries 283s ok 7 - getter uses new override entry for wildcard 283s ok 8 - getter prefers case-insensitive matches to wildcard entries 283s ok 9 - getter matches to wildcard entries 283s ok 10 - text/* matches itself 283s ok 11 - getter still prefers case-insensitive matches to wildcard entries 283s ok 12 - text/* is preferred to */* 283s ok 13 - */* matches */*, once defined 283s ok 14 - */* is returned as a last resort 283s ok 15 - application/x-www-form-urlencoded happy path with unicode 283s ok 16 - application/x-ndjson happy path with unicode 283s ok 17 - application/x-ndjson dies with line number of the bad data 283s ok 18 - base64 encoding decoder + application/json media_type decoder 283s ok 19 - base64url encoding decoder + application/json media_type decoder 283s 1..19 283s ok 2 - media_type and encoding handlers 283s # Subtest: draft2020-12 assertions 283s ok 1 - under the current spec version, content* keywords are not assertions 283s ok 2 - contentEncoding first decodes the string, erroring if it can't 283s ok 3 - then contentMediaType parses the decoded string, erroring if it can't, and does not continue with the schema 283s ok 4 - contentSchema evaluates the decoded data 283s ok 5 - null data is handled properly 283s ok 6 - contentSchema successfully evaluates the decoded data 283s 1..6 283s ok 3 - draft2020-12 assertions 283s # Subtest: draft7 assertions 283s ok 1 - in draft7, assertion behaviour is the default 283s ok 2 - in draft7, then contentMediaType parses the decoded string, erroring if it can't, and does not continue with the schema 283s ok 3 - under draft7, content* are assertions by default, but contentSchema does not exist 283s 1..3 283s ok 4 - draft7 assertions 283s # Subtest: more assertions 283s ok 1 - evaluation aborts with an unrecognized contentEncoding 283s ok 2 - evaluation aborts with an unrecognized contentMediaType 283s 1..2 283s ok 5 - more assertions 283s # Subtest: use of an absolute URI and different dialect within contentSchema 283s ok 1 - evaluation of the subschema correctly uses the new $id and $schema 283s 1..1 283s ok 6 - use of an absolute URI and different dialect within contentSchema 283s 1..6 283s ok 285s t/dialects.t ............................ 285s # Subtest: invalid use of the $schema keyword 285s ok 1 - $schema can only appear at the root of a schema, when there is no canonical URI 285s ok 2 - $schema can only appear where the canonical URI has no fragment, when there is a canonical URI 285s ok 3 - this is still not a resource root, even in a $ref target 285s 1..3 285s ok 1 - invalid use of the $schema keyword 285s # Subtest: defaults without a $schema keyword 285s ok 1 - boolean schema: no $id, no $schema 285s ok 2 - boolean schema: defaults to draft2020-12 without a $schema keyword 285s ok 3 - object schema: no $id, no $schema 285s ok 4 - object schema: defaults to draft2020-12 without a $schema keyword 285s ok 5 - "not" keyword, from the Applicator vocabulary, is traversed at the root level 285s ok 6 - object schema: $id, no $schema 285s ok 7 - named resource defaults to draft2020-12 without a $schema keyword 285s ok 8 - boolean schema: no $id, no $schema 285s ok 9 - boolean schema: specification_version overridden 285s ok 10 - object schema: no $id, no $schema, specification version overridden, other keywords are ignored during traversal 285s ok 11 - object schema: no $id, no $schema, specification version overridden, other keywords are ignored during evaluation 285s ok 12 - object schema: overridden to draft7 285s ok 13 - object schema: $id, no $schema, unrecognized+invalid keywords are ignored during traversal 285s ok 14 - object schema: $id, no $schema 285s ok 15 - object schema: overridden to draft7 and other keywords are ignored 285s 1..15 285s ok 2 - defaults without a $schema keyword 285s # Subtest: behaviour with a $schema keyword 285s ok 1 - object schema: no $id, has $schema, unrecognized+invalid keywords are ignored during traversal 285s ok 2 - object schema: no $id, has $schema, unrecognized keywords are ignored during evaluation 285s ok 3 - semantics can be changed to another draft version 285s ok 4 - schema is accepted with $schema without an empty fragment 285s ok 5 - ..and is still recognized as draft7 285s ok 6 - $id and $schema, unrecognized+invalid keywords are ignored during traversal 285s ok 7 - $id and $schema 285s ok 8 - named resource can be changed to another draft version and other keywords are ignored 285s ok 9 - no $id, specification version overridden twice; unrecognized+invalid keywords are ignored during traversal 285s ok 10 - no $id, specification version overridden twice, other keywords are ignored during evaluation 285s ok 11 - unnamed resource can be changed to another draft version 285s ok 12 - no $id, specification version overridden twice; unrecognized+invalid keywords are ignored during traversal 285s ok 13 - no $id, specification version overridden twice, other keywords are ignored during evaluation 285s ok 14 - unnamed resource can be changed to another draft version 285s 1..14 285s ok 3 - behaviour with a $schema keyword 285s # Subtest: setting or changing specification versions in a single document 285s ok 1 - $schema can appear adjacent to any $id 285s 1..1 285s ok 4 - setting or changing specification versions in a single document 285s # Subtest: changing specification versions across documents 285s ok 1 - no unexpected warnings 285s ok 2 - switching between specification versions is acceptable when crossing document boundaries 285s ok 3 - resources for top level schema 285s ok 4 - resources for subschema 285s ok 5 - no unexpected warnings 285s ok 6 - switching between specification versions is acceptable when crossing document boundaries 285s ok 7 - resources for top level schema 285s ok 8 - resources for subschema 285s 1..8 285s ok 5 - changing specification versions across documents 285s # Subtest: changing specification versions within documents 285s # 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. 285s ok 1 - switching between specification versions is acceptable within a document, draft2019-09 -> draft7 285s ok 2 - resources for top level schema 285s ok 3 - resources for subschema 285s # 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. 285s ok 4 - switching between specification versions is acceptable within a document, draft7 -> draf2020-12 285s ok 5 - resources for top level schema 285s ok 6 - resources for subschema 285s # 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. 285s ok 7 - switching between specification versions is acceptable within a document, draft2020-12 -> draft4 285s ok 8 - resources for top level schema 285s ok 9 - resources for subschema 285s 1..9 285s ok 6 - changing specification versions within documents 285s # Subtest: $vocabulary syntax 285s ok 1 - $vocabulary syntax checks 285s ok 2 - $vocabulary location check - resource root 285s ok 3 - $vocabulary location check - document root 285s ok 4 - successfully evaluated a metaschema that specifies vocabularies 285s ok 5 - metaschemas are not saved on the resource 285s ok 6 - ..but once we use the schema as a metaschema, 285s ok 7 - ... the vocabulary information is now cached in the evaluator 285s 1..7 285s ok 7 - $vocabulary syntax 285s # Subtest: changing dialects (same specification version) 285s ok 1 - evaluation of the subschema in another document correctly uses the new $id and $schema 285s ok 2 - evaluation of the subschema in the same document via a $ref correctly uses the new $id and $schema 285s ok 3 - evaluation of the subschema in the same document with no $ref correctly uses the new $id and $schema 285s ok 4 - no errors found when traversing a document with a malformed keyword outside the dialect 285s 1..4 285s ok 8 - changing dialects (same specification version) 285s # Subtest: standard metaschemas 285s ok 1 - main metaschema evaluated against its own URI 285s ok 2 - main metaschema evaluated against its own content 285s ok 3 - core metaschema evaluated against the main metaschema URI 285s ok 4 - core metaschema evaluated against its own content 285s 1..4 285s ok 9 - standard metaschemas 285s # Subtest: custom metaschemas, without custom vocabularies 285s ok 1 - document contains correct values 285s ok 2 - specification version detected from standard metaschema URI 285s ok 3 - custom metaschema restricts schemas to objects 285s ok 4 - custom metaschema recurses to standard metaschema 285s ok 5 - objects are acceptable schemas to this metaschema 285s ok 6 - metaschemas without $vocabulary can still be used in the $schema keyword 285s ok 7 - ..and schema uses the correct spec version and vocabularies 285s 1..7 285s ok 10 - custom metaschemas, without custom vocabularies 285s # Subtest: custom metaschemas, with custom vocabularies 285s ok 1 - $schema values must be strings 285s ok 2 - $schema values must be URIs 285s ok 3 - custom metaschemas are okay, but the document must be known 285s ok 4 - $vocabulary location check - document root 285s ok 5 - metaschemas must have an i$id 285s ok 6 - $vocabulary validation that must be deferred until used as a metaschema 285s ok 7 - vocabularies in the metaschema must match the $schema version 285s ok 8 - metaschemas using "$vocabulary" must contain vocabularies 285s ok 9 - metaschemas must contain the Core vocabulary 285s ok 10 - validation succeeds because "minimum" never gets run 285s ok 11 - document contains correct values 285s ok 12 - determined vocabularies to use for this schema 285s 1..12 285s ok 11 - custom metaschemas, with custom vocabularies 285s # Subtest: custom vocabulary classes with add_vocabulary() 285s ok 1 - vocabulary class must exist 285s ok 2 - vocabulary class must implement the role 285s ok 3 - vocabulary class must implement some subs 285s ok 4 - vocabulary() sub in the vocabulary class must return uri => specification_version pairs 285s ok 5 - parse error from bad vocab sub 285s ok 6 - vocabulary() sub in the vocabulary class must contain valid absolute, fragmentless URIs 285s ok 7 - vocabulary() sub in the vocabulary class must reference a known specification version 285s ok 8 - added a vocabulary sub 285s ok 9 - vocabulary was successfully added 285s ok 10 - custom vocabulary class has a conflicting evaluation_order 285s ok 11 - added another vocabulary sub 285s ok 12 - custom vocabulary class used by a custom metaschema used by a schema 285s 1..12 285s ok 12 - custom vocabulary classes with add_vocabulary() 285s # Subtest: $schema points to a boolean schema 285s ok 1 - $schema cannot reference a boolean schema 285s 1..1 285s ok 13 - $schema points to a boolean schema 285s # Subtest: $ref to a different dialect 285s ok 1 - evaluation of the subschema correctly uses the new $id and $schema 285s 1..1 285s ok 14 - $ref to a different dialect 285s 1..14 285s ok 287s t/document.t ............................ 287s # Subtest: boolean document 287s ok 1 - boolean schema with no canonical_uri 287s ok 2 - boolean schema with invalid canonical_uri (fragment) 287s ok 3 - boolean schema with valid canonical_uri 287s 1..3 287s ok 1 - boolean document 287s # Subtest: object document 287s ok 1 - object schema with originally provided uri = '' and no root $id 287s ok 2 - object schema with originally provided uri = '' and no root $id 287s ok 3 - object schema with originally provided uri = '0' and no root $id 287s ok 4 - object schema with originally provided uri = '' and no root $id 287s ok 5 - object schema with originally provided uri = '' and no root $id 287s ok 6 - object schema with originally provided uri = '0' and no root $id 287s ok 7 - object schema with valid canonical_uri, no root $id 287s ok 8 - object schema with originally provided uri = '' and absolute root $id 287s ok 9 - object schema with originally provided uri = '' and absolute root $id 287s ok 10 - object schema with originally provided uri = '' and absolute root $id 287s ok 11 - originally provided uri is not indexed when overridden by an absolute root $id 287s ok 12 - originally provided uri is not indexed when overridden by an absolute root $id 287s ok 13 - originally provided uri is not indexed when overridden by an absolute root $id 287s ok 14 - when canonical_uri provided, the empty uri is not added as a referenceable uri 287s ok 15 - object schema with originally provided uri equal to root $id 287s ok 16 - object schema with canonical_uri and root $id, and additional resource schemas as well 287s ok 17 - relative $id at root is resolved against provided canonical_id 287s ok 18 - relative uri for inner $id 287s ok 19 - no root $id; absolute uri with path in subschema resource 287s ok 20 - no root $id or canonical_uri provided; anchor is indexed at the root 287s ok 21 - canonical_uri provided; empty uri not added as a referenceable uri when an anchor exists 287s ok 22 - absolute uri provided at root; adjacent anchor has the same canonical uri 287s ok 23 - absolute uri provided at root; anchor lower down has its own canonical uri 287s 1..23 287s ok 2 - object document 287s # Subtest: $id and $anchor as properties 287s ok 1 - did not index the $id and $anchor properties as if they were identifier keywords 287s 1..1 287s ok 3 - $id and $anchor as properties 287s # Subtest: $id with an empty fragment 287s ok 1 - $id is stored with the empty fragment stripped 287s 1..1 287s ok 4 - $id with an empty fragment 287s # Subtest: $id with a non-empty fragment 287s ok 1 - did not index the $id with a non-empty fragment, nor use it as the base for other identifiers 287s ok 2 - canonical_uri 287s ok 3 - nothing was indexed 287s 1..3 287s ok 5 - $id with a non-empty fragment 287s # Subtest: $anchor not conforming to syntax 287s ok 1 - did not index an $anchor with invalid characters 287s ok 2 - nothing was indexed 287s ok 3 - did not index a draft2020-12 $anchor with invalid characters, or non-fragment-only $id 287s ok 4 - nothing was indexed 287s ok 5 - did not index a draft2019-09 $anchor with invalid characters, or non-fragment-only $id 287s ok 6 - nothing was indexed 287s ok 7 - did not index a draft6 fragment-only $id with invalid characters, or non-fragment-only $id 287s ok 8 - nothing was indexed 287s ok 9 - did not index a draft7 fragment-only $id with invalid characters, or non-fragment-only $id 287s ok 10 - nothing was indexed 287s ok 11 - did not index a draft4 fragment-only id with invalid characters 287s ok 12 - nothing was indexed 287s ok 13 - no errors 287s ok 14 - can combine a canonical identifier with an anchor in draft4 287s 1..14 287s ok 6 - $anchor not conforming to syntax 287s # Subtest: $schema not conforming to syntax 287s ok 1 - invalid $schema is detected 287s 1..1 287s ok 7 - $schema not conforming to syntax 287s # Subtest: $anchor and $id below an $id that is not at the document root 287s ok 1 - canonical_uri uses the path from the innermost $id, not document root $id 287s 1..1 287s ok 8 - $anchor and $id below an $id that is not at the document root 287s # Subtest: JSON pointer and URI escaping 287s ok 1 - properly escaped special characters in JSON pointers and URIs 287s ok 2 - schema locations are tracked 287s ok 3 - non-schema locations are also tracked 287s ok 4 - schema locations can be queried 287s 1..4 287s ok 9 - JSON pointer and URI escaping 287s # Subtest: resource collisions 287s ok 1 - no collision when adding an identical resource (after resolving with base uri) 287s ok 2 - detected collision between document's initial uri and a subschema's uri 287s ok 3 - detected collision between two subschema uris in a document 287s ok 4 - add first document, resolving resources to a base uri 287s ok 5 - the resource in the second document resolves to the same uri as from the first document 287s ok 6 - ignored "duplicate" uris embedded in non-schemas 287s 1..6 287s ok 10 - resource collisions 287s # Subtest: create document with explicit canonical_uri set to the same as root $id 287s ok 1 - there is one single uri indexed to the document 287s 1..1 287s ok 11 - create document with explicit canonical_uri set to the same as root $id 287s # Subtest: canonical_uri identification from a document with errors 287s ok 1 - error lower down in document does not result in an inner identifier being used as canonical_uri 287s 1..1 287s ok 12 - canonical_uri identification from a document with errors 287s # Subtest: custom metaschema_uri 287s ok 1 - document contains correct values 287s ok 2 - determined vocabularies to use for this schema 287s ok 3 - validation succeeds because "minimum" never gets run 287s ok 4 - can evaluate at a subschema as well, with the same vocabularies 287s ok 5 - schema validates against its metaschema, and "minimum" is ignored 287s ok 6 - no leaks in the evaluator object 287s 1..6 287s ok 13 - custom metaschema_uri 287s # Subtest: multiple uris used for resolution and identification, and original_uri 287s ok 1 - document has correct resources, resolved against the provided base uri 287s ok 2 - evaluator has correct resources, resolved against the provided base uri 287s ok 3 - when evaluating the document using the canonical uri, error locations use the canonical uri 287s ok 4 - when evaluating the document using a retrieval uri, error locations still use the canonical uri 287s ok 5 - same document is added a second time 287s ok 6 - document resources are added using the new base, which appears in their canonical_uri values 287s ok 7 - when evaluating using the first base uri, error locations are relative to the provided base uri 287s ok 8 - when evaluating using the second base uri, error locations are relative to the original evaluation location 287s 1..8 287s ok 14 - multiple uris used for resolution and identification, and original_uri 287s 1..14 287s ok 287s t/equality.t ............................ 287s # Subtest: equality, using inflated data 287s ok 1 - null == null is true 287s ok 2 - error is undefined 287s ok 3 - no unexpected error encountered 287s ok 4 - type of arg 0 was not mutated while making equality check 287s ok 5 - type of arg 1 was not mutated while making equality check 287s # 287s ok 6 - null == false is false 287s ok 7 - two instances differ at the expected place 287s ok 8 - error is correct 287s ok 9 - no unexpected error encountered 287s ok 10 - type of arg 0 was not mutated while making equality check 287s ok 11 - type of arg 1 was not mutated while making equality check 287s # 287s ok 12 - null == true is false 287s ok 13 - two instances differ at the expected place 287s ok 14 - error is correct 287s ok 15 - no unexpected error encountered 287s ok 16 - type of arg 0 was not mutated while making equality check 287s ok 17 - type of arg 1 was not mutated while making equality check 287s # 287s ok 18 - null == 1 is false 287s ok 19 - two instances differ at the expected place 287s ok 20 - error is correct 287s ok 21 - no unexpected error encountered 287s ok 22 - type of arg 0 was not mutated while making equality check 287s ok 23 - type of arg 1 was not mutated while making equality check 287s ok 24 - arg 1 did not gain a POK 287s # 287s ok 25 - null == "1" is false 287s ok 26 - two instances differ at the expected place 287s ok 27 - error is correct 287s ok 28 - no unexpected error encountered 287s ok 29 - type of arg 0 was not mutated while making equality check 287s ok 30 - type of arg 1 was not mutated while making equality check 287s ok 31 - arg 1 did not gain an NOK or IOK 287s # 287s ok 32 - ["a", "b", "c"] == ["a", "b", "c"] is true 287s ok 33 - error is undefined 287s ok 34 - no unexpected error encountered 287s ok 35 - type of arg 0 was not mutated while making equality check 287s ok 36 - type of arg 1 was not mutated while making equality check 287s # 287s ok 37 - ["a", "b", "c"] == ["a", "b"] is false 287s ok 38 - two instances differ at the expected place 287s ok 39 - error is correct 287s ok 40 - no unexpected error encountered 287s ok 41 - type of arg 0 was not mutated while making equality check 287s ok 42 - type of arg 1 was not mutated while making equality check 287s # 287s ok 43 - ["a", "b"] == ["b", "a"] is false 287s ok 44 - two instances differ at the expected place 287s ok 45 - error is correct 287s ok 46 - no unexpected error encountered 287s ok 47 - type of arg 0 was not mutated while making equality check 287s ok 48 - type of arg 1 was not mutated while making equality check 287s # 287s ok 49 - 1 == 1 is true 287s ok 50 - error is undefined 287s ok 51 - no unexpected error encountered 287s ok 52 - type of arg 0 was not mutated while making equality check 287s ok 53 - type of arg 1 was not mutated while making equality check 287s ok 54 - arg 0 did not gain a POK 287s ok 55 - arg 1 did not gain a POK 287s # 287s ok 56 - 1 == 1.0 is true 287s ok 57 - error is undefined 287s ok 58 - no unexpected error encountered 287s ok 59 - type of arg 0 was not mutated while making equality check 287s ok 60 - type of arg 1 was not mutated while making equality check 287s ok 61 - arg 0 did not gain a POK 287s ok 62 - arg 1 did not gain a POK 287s # 287s ok 63 - 1 == "1.0" is false 287s ok 64 - two instances differ at the expected place 287s ok 65 - error is correct 287s ok 66 - no unexpected error encountered 287s ok 67 - type of arg 0 was not mutated while making equality check 287s ok 68 - type of arg 1 was not mutated while making equality check 287s ok 69 - arg 0 did not gain a POK 287s ok 70 - arg 1 did not gain an NOK or IOK 287s # 287s ok 71 - "1.1" == 1.1 is false 287s ok 72 - two instances differ at the expected place 287s ok 73 - error is correct 287s ok 74 - no unexpected error encountered 287s ok 75 - type of arg 0 was not mutated while making equality check 287s ok 76 - type of arg 1 was not mutated while making equality check 287s ok 77 - arg 0 did not gain an NOK or IOK 287s ok 78 - arg 1 did not gain a POK 287s # 287s ok 79 - "1" == 1 is false 287s ok 80 - two instances differ at the expected place 288s ok 81 - error is correct 288s ok 82 - no unexpected error encountered 288s ok 83 - type of arg 0 was not mutated while making equality check 288s ok 84 - type of arg 1 was not mutated while making equality check 288s ok 85 - arg 0 did not gain an NOK or IOK 288s ok 86 - arg 1 did not gain a POK 288s # 288s ok 87 - "1.1" == 1.1 is false 288s ok 88 - two instances differ at the expected place 288s ok 89 - error is correct 288s ok 90 - no unexpected error encountered 288s ok 91 - type of arg 0 was not mutated while making equality check 288s ok 92 - type of arg 1 was not mutated while making equality check 288s ok 93 - arg 0 did not gain an NOK or IOK 288s ok 94 - arg 1 did not gain a POK 288s # 288s ok 95 - [1, 2] == [2, 1] is false 288s ok 96 - two instances differ at the expected place 288s ok 97 - error is correct 288s ok 98 - no unexpected error encountered 288s ok 99 - type of arg 0 was not mutated while making equality check 288s ok 100 - type of arg 1 was not mutated while making equality check 288s # 288s ok 101 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 2} is true 288s ok 102 - error is undefined 288s ok 103 - no unexpected error encountered 288s ok 104 - type of arg 0 was not mutated while making equality check 288s ok 105 - type of arg 1 was not mutated while making equality check 288s # 288s ok 106 - {"a" : 1} == {"a" : 1.0} is true 288s ok 107 - error is undefined 288s ok 108 - no unexpected error encountered 288s ok 109 - type of arg 0 was not mutated while making equality check 288s ok 110 - type of arg 1 was not mutated while making equality check 288s # 288s ok 111 - ["école", "ಠ_ಠ"] == ["école", "ಠ_ಠ"] is true 288s ok 112 - error is undefined 288s ok 113 - no unexpected error encountered 288s ok 114 - type of arg 0 was not mutated while making equality check 288s ok 115 - type of arg 1 was not mutated while making equality check 288s # 288s ok 116 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 3} is false 288s ok 117 - two instances differ at the expected place 288s ok 118 - error is correct 288s ok 119 - no unexpected error encountered 288s ok 120 - type of arg 0 was not mutated while making equality check 288s ok 121 - type of arg 1 was not mutated while making equality check 288s # 288s ok 122 - {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 4}} == {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 5}} is false 288s ok 123 - two instances differ at the expected place 288s ok 124 - error is correct 288s ok 125 - no unexpected error encountered 288s ok 126 - type of arg 0 was not mutated while making equality check 288s ok 127 - type of arg 1 was not mutated while making equality check 288s # 288s ok 128 - [{"a" : 1}] == [{"a" : 1, "b" : 2}] is false 288s ok 129 - two instances differ at the expected place 288s ok 130 - error is correct 288s ok 131 - no unexpected error encountered 288s ok 132 - type of arg 0 was not mutated while making equality check 288s ok 133 - type of arg 1 was not mutated while making equality check 288s # 288s ok 134 - [{"a" : 1}] == [{"b" : 2}] is false 288s ok 135 - two instances differ at the expected place 288s ok 136 - error is correct 288s ok 137 - no unexpected error encountered 288s ok 138 - type of arg 0 was not mutated while making equality check 288s ok 139 - type of arg 1 was not mutated while making equality check 288s # 288s ok 140 - {"foo" : [[0]]} == {"foo" : [[0, 1]]} is false 288s ok 141 - two instances differ at the expected place 288s ok 142 - error is correct 288s ok 143 - no unexpected error encountered 288s ok 144 - type of arg 0 was not mutated while making equality check 288s ok 145 - type of arg 1 was not mutated while making equality check 288s # 288s 1..145 288s ok 1 - equality, using inflated data 288s # Subtest: equality, using JSON strings 288s ok 1 - null == null is true 288s ok 2 - no unexpected error encountered 288s ok 3 - type of arg 0 was not mutated while making equality check 288s ok 4 - type of arg 1 was not mutated while making equality check 288s # 288s ok 5 - null == 1 is false 288s ok 6 - two instances differ at the expected place 288s ok 7 - no unexpected error encountered 288s ok 8 - type of arg 0 was not mutated while making equality check 288s ok 9 - type of arg 1 was not mutated while making equality check 288s ok 10 - arg 1 did not gain a POK 288s # 288s ok 11 - ["a", "b", "c"] == ["a", "b", "c"] is true 288s ok 12 - no unexpected error encountered 288s ok 13 - type of arg 0 was not mutated while making equality check 288s ok 14 - type of arg 1 was not mutated while making equality check 288s # 288s ok 15 - ["a", "b", "c"] == ["a", "b"] is false 288s ok 16 - two instances differ at the expected place 288s ok 17 - no unexpected error encountered 288s ok 18 - type of arg 0 was not mutated while making equality check 288s ok 19 - type of arg 1 was not mutated while making equality check 288s # 288s ok 20 - ["a", "b"] == ["b", "a"] is false 288s ok 21 - two instances differ at the expected place 288s ok 22 - no unexpected error encountered 288s ok 23 - type of arg 0 was not mutated while making equality check 288s ok 24 - type of arg 1 was not mutated while making equality check 288s # 288s ok 25 - 1 == 1 is true 288s ok 26 - no unexpected error encountered 288s ok 27 - type of arg 0 was not mutated while making equality check 288s ok 28 - type of arg 1 was not mutated while making equality check 288s ok 29 - arg 0 did not gain a POK 288s ok 30 - arg 1 did not gain a POK 288s # 288s ok 31 - 1 == 1.0 is true 288s ok 32 - no unexpected error encountered 288s ok 33 - type of arg 0 was not mutated while making equality check 288s ok 34 - type of arg 1 was not mutated while making equality check 288s ok 35 - arg 0 did not gain a POK 288s ok 36 - arg 1 did not gain a POK 288s # 288s ok 37 - 10 == 10.0 is true 288s ok 38 - no unexpected error encountered 288s ok 39 - type of arg 0 was not mutated while making equality check 288s ok 40 - type of arg 1 was not mutated while making equality check 288s ok 41 - arg 0 did not gain a POK 288s ok 42 - arg 1 did not gain a POK 288s # 288s ok 43 - [1, 2] == [2, 1] is false 288s ok 44 - two instances differ at the expected place 288s ok 45 - no unexpected error encountered 288s ok 46 - type of arg 0 was not mutated while making equality check 288s ok 47 - type of arg 1 was not mutated while making equality check 288s # 288s ok 48 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 2} is true 288s ok 49 - no unexpected error encountered 288s ok 50 - type of arg 0 was not mutated while making equality check 288s ok 51 - type of arg 1 was not mutated while making equality check 288s # 288s ok 52 - {"a" : 1} == {"a" : 1.0} is true 288s ok 53 - no unexpected error encountered 288s ok 54 - type of arg 0 was not mutated while making equality check 288s ok 55 - type of arg 1 was not mutated while making equality check 288s # 288s ok 56 - ["école", "ಠ_ಠ"] == ["école", "ಠ_ಠ"] is true 288s ok 57 - no unexpected error encountered 288s ok 58 - type of arg 0 was not mutated while making equality check 288s ok 59 - type of arg 1 was not mutated while making equality check 288s # 288s ok 60 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 3} is false 288s ok 61 - two instances differ at the expected place 288s ok 62 - no unexpected error encountered 288s ok 63 - type of arg 0 was not mutated while making equality check 288s ok 64 - type of arg 1 was not mutated while making equality check 288s # 288s ok 65 - {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 4}} == {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 5}} is false 288s ok 66 - two instances differ at the expected place 288s ok 67 - no unexpected error encountered 288s ok 68 - type of arg 0 was not mutated while making equality check 288s ok 69 - type of arg 1 was not mutated while making equality check 288s # 288s 1..69 288s ok 2 - equality, using JSON strings 288s # Subtest: equality, using scalarref_booleans 288s ok 1 - false == true is false 288s ok 2 - two instances differ at the expected place 288s ok 3 - no unexpected error encountered 288s ok 4 - type of arg 0 was not mutated while making equality check 288s ok 5 - type of arg 1 was not mutated while making equality check 288s # 288s ok 6 - true == true is true 288s ok 7 - no unexpected error encountered 288s ok 8 - type of arg 0 was not mutated while making equality check 288s ok 9 - type of arg 1 was not mutated while making equality check 288s # 288s ok 10 - false == false is true 288s ok 11 - no unexpected error encountered 288s ok 12 - type of arg 0 was not mutated while making equality check 288s ok 13 - type of arg 1 was not mutated while making equality check 288s # 288s ok 14 - true == false is false 288s ok 15 - two instances differ at the expected place 288s ok 16 - no unexpected error encountered 288s ok 17 - type of arg 0 was not mutated while making equality check 288s ok 18 - type of arg 1 was not mutated while making equality check 288s # 288s ok 19 - null == false is false 288s ok 20 - two instances differ at the expected place 288s ok 21 - no unexpected error encountered 288s ok 22 - type of arg 0 was not mutated while making equality check 288s ok 23 - type of arg 1 was not mutated while making equality check 288s # 288s ok 24 - null == false is false 288s ok 25 - two instances differ at the expected place 288s ok 26 - no unexpected error encountered 288s ok 27 - type of arg 0 was not mutated while making equality check 288s ok 28 - type of arg 1 was not mutated while making equality check 288s # 288s 1..28 288s ok 3 - equality, using scalarref_booleans 288s # Subtest: equality, using stringy_numbers 288s ok 1 - 1 == 1 is true 288s ok 2 - no unexpected error encountered 288s ok 3 - type of arg 0 was not mutated while making equality check (get_type returns integer) 288s ok 4 - type of arg 1 was not mutated while making equality check (get_type returns integer) 288s ok 5 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 288s ok 6 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 288s ok 7 - arg 0 did not gain a POK 288s ok 8 - arg 1 did not gain a POK 288s # 288s ok 9 - 1 == 1.0 is true 288s ok 10 - no unexpected error encountered 288s ok 11 - type of arg 0 was not mutated while making equality check (get_type returns integer) 288s ok 12 - type of arg 1 was not mutated while making equality check (get_type returns integer) 288s ok 13 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 288s ok 14 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 288s ok 15 - arg 0 did not gain a POK 288s ok 16 - arg 1 did not gain a POK 288s # 288s ok 17 - 1 == "1.0" is true 288s ok 18 - no unexpected error encountered 288s ok 19 - type of arg 0 was not mutated while making equality check (get_type returns integer) 288s ok 20 - type of arg 1 was not mutated while making equality check (get_type returns string) 288s ok 21 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 288s ok 22 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 288s ok 23 - arg 0 did not gain a POK 288s ok 24 - arg 1 did not gain an NOK or IOK 288s # 288s ok 25 - "1.1" == 1.1 is true 288s ok 26 - no unexpected error encountered 288s ok 27 - type of arg 0 was not mutated while making equality check (get_type returns string) 288s ok 28 - type of arg 1 was not mutated while making equality check (get_type returns number) 288s ok 29 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 288s ok 30 - type of arg 1 was not mutated while making equality check (is_type('number') returns true) 288s ok 31 - arg 0 did not gain an NOK or IOK 288s ok 32 - arg 1 did not gain a POK 288s # 288s ok 33 - "1" == 1 is true 288s ok 34 - no unexpected error encountered 288s ok 35 - type of arg 0 was not mutated while making equality check (get_type returns string) 288s ok 36 - type of arg 1 was not mutated while making equality check (get_type returns integer) 288s ok 37 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 288s ok 38 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 288s ok 39 - arg 0 did not gain an NOK or IOK 288s ok 40 - arg 1 did not gain a POK 288s # 288s ok 41 - "1.1" == 1.1 is true 288s ok 42 - no unexpected error encountered 288s ok 43 - type of arg 0 was not mutated while making equality check (get_type returns string) 288s ok 44 - type of arg 1 was not mutated while making equality check (get_type returns number) 288s ok 45 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 288s ok 46 - type of arg 1 was not mutated while making equality check (is_type('number') returns true) 288s ok 47 - arg 0 did not gain an NOK or IOK 288s ok 48 - arg 1 did not gain a POK 288s # 288s ok 49 - "1" == "1.00" is true 288s ok 50 - no unexpected error encountered 288s ok 51 - type of arg 0 was not mutated while making equality check (get_type returns string) 288s ok 52 - type of arg 1 was not mutated while making equality check (get_type returns string) 288s ok 53 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 288s ok 54 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 288s ok 55 - arg 0 did not gain an NOK or IOK 288s ok 56 - arg 1 did not gain an NOK or IOK 288s # 288s ok 57 - "1.10" == "1.1000" is true 288s ok 58 - no unexpected error encountered 288s ok 59 - type of arg 0 was not mutated while making equality check (get_type returns string) 288s ok 60 - type of arg 1 was not mutated while making equality check (get_type returns string) 288s ok 61 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 288s ok 62 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 288s ok 63 - arg 0 did not gain an NOK or IOK 288s ok 64 - arg 1 did not gain an NOK or IOK 288s # 288s ok 65 - "x" == "x" is true 288s ok 66 - no unexpected error encountered 288s ok 67 - type of arg 0 was not mutated while making equality check (get_type returns string) 288s ok 68 - type of arg 1 was not mutated while making equality check (get_type returns string) 288s ok 69 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 288s ok 70 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 288s ok 71 - arg 0 did not gain an NOK or IOK 288s ok 72 - arg 1 did not gain an NOK or IOK 288s # 288s ok 73 - "x" == "y" is false 288s ok 74 - two instances differ at the expected place 288s ok 75 - no unexpected error encountered 288s ok 76 - type of arg 0 was not mutated while making equality check (get_type returns string) 288s ok 77 - type of arg 1 was not mutated while making equality check (get_type returns string) 288s ok 78 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 288s ok 79 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 288s ok 80 - arg 0 did not gain an NOK or IOK 288s ok 81 - arg 1 did not gain an NOK or IOK 288s # 288s ok 82 - "x" == 0 is false 288s ok 83 - two instances differ at the expected place 288s ok 84 - no unexpected error encountered 288s ok 85 - type of arg 0 was not mutated while making equality check (get_type returns string) 288s ok 86 - type of arg 1 was not mutated while making equality check (get_type returns integer) 288s ok 87 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 288s ok 88 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 288s ok 89 - arg 0 did not gain an NOK or IOK 288s ok 90 - arg 1 did not gain a POK 288s # 288s ok 91 - 0 == "y" is false 288s ok 92 - two instances differ at the expected place 288s ok 93 - no unexpected error encountered 288s ok 94 - type of arg 0 was not mutated while making equality check (get_type returns integer) 288s ok 95 - type of arg 1 was not mutated while making equality check (get_type returns string) 288s ok 96 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 288s ok 97 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 288s ok 98 - arg 0 did not gain a POK 288s ok 99 - arg 1 did not gain an NOK or IOK 288s # 288s ok 100 - "5" == 5 is true 288s ok 101 - no unexpected error encountered 288s ok 102 - type of arg 0 was not mutated while making equality check (get_type returns string) 288s ok 103 - type of arg 1 was not mutated while making equality check (get_type returns string) 288s ok 104 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 288s ok 105 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 288s ok 106 - arg 0 did not gain an NOK or IOK 288s # 288s ok 107 - 5 == 5 is true 288s ok 108 - no unexpected error encountered 288s ok 109 - type of arg 0 was not mutated while making equality check (get_type returns integer) 288s ok 110 - type of arg 1 was not mutated while making equality check (get_type returns string) 288s ok 111 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 288s ok 112 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 288s ok 113 - arg 0 did not gain a POK 288s # 288s ok 114 - "5" == "five" is false 288s ok 115 - two instances differ at the expected place 288s ok 116 - no unexpected error encountered 288s ok 117 - type of arg 0 was not mutated while making equality check (get_type returns string) 288s ok 118 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 288s ok 119 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 288s ok 120 - arg 0 did not gain an NOK or IOK 288s # 288s ok 121 - 5 == "five" is false 288s ok 122 - two instances differ at the expected place 288s ok 123 - no unexpected error encountered 288s ok 124 - type of arg 0 was not mutated while making equality check (get_type returns integer) 288s ok 125 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 288s ok 126 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 288s ok 127 - arg 0 did not gain a POK 288s # 288s ok 128 - "five" == "five" is false 288s ok 129 - two instances differ at the expected place 288s ok 130 - no unexpected error encountered 288s ok 131 - type of arg 0 was not mutated while making equality check (get_type returns ambiguous type) 288s ok 132 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 288s # 288s 1..132 288s ok 4 - equality, using stringy_numbers 288s 1..4 288s ok 289s t/errors.t .............................. 289s # Subtest: multiple types 289s ok 1 - type returned false 289s ok 2 - got error count 289s ok 3 - correct error generated from type 289s ok 4 - result object serializes correctly 289s 1..4 289s ok 1 - multiple types 289s # Subtest: multipleOf 289s ok 1 - correct error generated from multipleOf 289s 1..1 289s ok 2 - multipleOf 289s # Subtest: uniqueItems 289s ok 1 - correct error generated from uniqueItems 289s 1..1 289s ok 3 - uniqueItems 289s # Subtest: allOf, not, and false schema 289s ok 1 - correct errors with locations; did not collect errors inside "not" 289s ok 2 - short-circuited results contain fewer errors 289s 1..2 289s ok 4 - allOf, not, and false schema 289s # Subtest: anyOf keeps all errors for false paths when invalid, discards errors for false paths when valid 289s ok 1 - correct errors with locations; did not collect errors inside "not" 289s ok 2 - short-circuited results contain the same errors (short-circuiting not possible) 289s ok 3 - did not collect errors from failure paths from successful anyOf 289s ok 4 - no errors collected for true validation 289s 1..4 289s ok 5 - anyOf keeps all errors for false paths when invalid, discards errors for false paths when valid 289s # Subtest: applicators with non-boolean subschemas, discarding intermediary errors - items 289s ok 1 - collected all errors from subschemas for failing branches only (passing branches discard errors) 289s ok 2 - short-circuited results contain fewer errors 289s 1..2 289s ok 6 - applicators with non-boolean subschemas, discarding intermediary errors - items 289s # Subtest: applicators with non-boolean subschemas, discarding intermediary errors - contains 289s ok 1 - collected all errors from subschemas for failing branches only (passing branches discard errors) 289s ok 2 - short-circuited results contain the same errors 289s 1..2 289s ok 7 - applicators with non-boolean subschemas, discarding intermediary errors - contains 289s # Subtest: errors with $refs 289s ok 1 - errors have correct absolute keyword location via $ref 289s 1..1 289s ok 8 - errors with $refs 289s # Subtest: const and enum 289s ok 1 - got details about object differences in errors from const and enum 289s 1..1 289s ok 9 - const and enum 289s # Subtest: exceptions 289s ok 1 - attempting to evaluate a json string returns the exception as an error 289s ok 2 - exception flag is true on the result 289s ok 3 - a subschema of an invalid type returns an error at the right position, and evaluation continues 289s ok 4 - exception flag is true on the result 289s ok 5 - invalid argument to "type" returns an error at the right position, and evaluation continues 289s ok 6 - exception flag is true on the result 289s 1..6 289s ok 10 - exceptions 289s # Subtest: errors after crossing multiple $refs using $id and $anchor 289s ok 1 - errors have correct absolute keyword location via $ref 289s ok 2 - absolute keyword location is correct, even when not used in the $ref 289s 1..2 289s ok 11 - errors after crossing multiple $refs using $id and $anchor 289s # Subtest: unresolvable $ref to a local resource 289s ok 1 - error for a bad $ref reports the correct absolute location that was referred to 289s ok 2 - exception flag is true on the result 289s 1..2 289s ok 12 - unresolvable $ref to a local resource 289s # Subtest: unresolvable $ref to a remote resource 289s ok 1 - error for a bad $ref reports the correct absolute location that was referred to 289s ok 2 - exception flag is true on the result 289s 1..2 289s ok 13 - unresolvable $ref to a remote resource 289s # Subtest: unresolvable $ref to plain-name fragment 289s ok 1 - properly handled a bad $ref to an anchor 289s ok 2 - exception flag is true on the result 289s 1..2 289s ok 14 - unresolvable $ref to plain-name fragment 289s # Subtest: abort due to a schema error 289s ok 1 - exception inside a oneOf (where errors are localized) are still included in the result 289s 1..1 289s ok 15 - abort due to a schema error 289s # Subtest: sorted property names 289s ok 1 - property names are considered in sorted order 289s 1..1 289s ok 16 - sorted property names 289s # Subtest: bad regex in schema 289s ok 1 - bad "pattern" and "patternProperties" regexes are properly noted in error 289s ok 2 - bad "pattern" regex is properly noted in error 289s ok 3 - "pattern" regex is now valid, due to the Unicode property becoming defined 289s 1..3 289s ok 17 - bad regex in schema 289s # Subtest: JSON pointer escaping 289s ok 1 - JSON pointers are properly escaped; URIs doubly so 289s ok 2 - absoluteKeywordLocation is omitted when paths are the same, not counting uri encoding 289s ok 3 - use of _schema_path_suffix in a fatal error 289s 1..3 289s ok 18 - JSON pointer escaping 289s # Subtest: absoluteKeywordLocation 289s ok 1 - absoluteKeywordLocation is included when different from instanceLocation, even when empty 289s ok 2 - absoluteKeywordLocation is not included when the path equals keywordLocation, even if a $ref is present 289s ok 3 - absoluteKeywordLocation is never "\#" 289s ok 4 - absoluteKeywordLocation reflects the canonical schema uri as it changes when passing through $id 289s ok 5 - plain-name fragment in $id does not change canonical schema uri 289s 1..5 289s ok 19 - absoluteKeywordLocation 289s # Subtest: dependentRequired 289s ok 1 - dependentRequired traversal error 289s 1..1 289s ok 20 - dependentRequired 289s # Subtest: numbers in output 289s ok 1 - numbers in errors do not lose any digits of precision 289s 1..1 289s ok 21 - numbers in output 289s # Subtest: effective_base_uri and overriding starting locations 289s ok 1 - error locations are relative to the effective_base_uri, but $ref usage is not restricted 289s ok 2 - can alter locations with data_path, traversed_schema_path, effective_base_uri 289s 1..2 289s ok 22 - effective_base_uri and overriding starting locations 289s # Subtest: recommended_response 289s ok 1 - recommended_response is not defined when there are no errors 289s ok 2 - recommended_response uses the first error in the result 289s ok 3 - recommended_response indicates an exception occurred 289s ok 4 - recommended_response uses the one from the error that is explicitly set 289s 1..4 289s ok 23 - recommended_response 289s # Subtest: exclusiveMaximum, exclusiveMinimum across drafts 289s ok 1 - later drafts; errors are produced separately from the keywords 289s ok 2 - later drafts; two errors can result 289s ok 3 - draft4: one error comes from maximum, but includes the exclusiveMaximum check 289s ok 4 - draft4: maximum + exclusiveMaximum checks are combined 289s ok 5 - draft4: exclusive check uses the right boundary 289s ok 6 - draft4: maximum check is correct 289s 1..6 289s ok 24 - exclusiveMaximum, exclusiveMinimum across drafts 289s 1..24 289s ok 290s t/evaluate_json_string.t ................ 290s ok 1 - we have a JSON decoder 290s ok 2 - json data "true" is evaluated successfully 290s ok 3 - no exceptions in evaluate_json_string on good json 290s ok 4 - evaluating bad json data returns false, with error 290s ok 5 - no exceptions in evaluate_json_string on bad json 290s 1..5 290s ok 291s t/find-identifiers.t .................... 291s # Subtest: $id sets canonical uri 291s ok 1 - $id was recognized - $ref was successfully traversed 291s ok 2 - resources indexed; document canonical_uri is still unset 291s ok 3 - the same document object is indexed under both URIs 291s ok 4 - the schema contains no blessed leaf nodes 291s 1..4 291s ok 1 - $id sets canonical uri 291s # Subtest: anchors 291s ok 1 - $id was recognized - absolute locations use json paths, not anchors 291s ok 2 - internal resource index is correct 291s 1..2 291s ok 2 - anchors 291s # Subtest: $anchor at root without $id 291s ok 1 - $id without anchor was recognized - absolute locations use json paths, not anchors 291s ok 2 - internal resource index is correct 291s 1..2 291s ok 3 - $anchor at root without $id 291s # Subtest: $ids and $anchors in subschemas after $id changes 291s ok 1 - $anchor is legal in a subschema 291s ok 2 - internal resource index is correct 291s 1..2 291s ok 4 - $ids and $anchors in subschemas after $id changes 291s # Subtest: invalid $id and $anchor 291s ok 1 - bad $id and $anchor are detected, even if bad definitions are not traversed 291s ok 2 - "bad" $ids and $anchors that are not actually keywords are not reported as errors 291s 1..2 291s ok 5 - invalid $id and $anchor 291s # Subtest: nested $ids 291s ok 1 - errors have the correct location 291s ok 2 - properly resolved all the nested $ids 291s 1..2 291s ok 6 - nested $ids 291s # Subtest: multiple documents, each using canonical_uri = "" 291s ok 1 - evaluation of schema1 291s ok 2 - resources in initial schema are indexed 291s ok 3 - successful evaluation of schema2 291s ok 4 - resources in second schema are indexed; all resources from first schema are preserved except uri="" 291s 1..4 291s ok 7 - multiple documents, each using canonical_uri = "" 291s # Subtest: multiple documents, each using canonical_uri = "", collisions in other resources 291s ok 1 - evaluation of schema1 291s ok 2 - resources in initial schema are indexed 291s ok 3 - schema2 cannot be evaluated - an internal $id collides with an existing resource 291s 1..3 291s ok 8 - multiple documents, each using canonical_uri = "", collisions in other resources 291s # Subtest: resource collisions in canonical uris 291s ok 1 - detected collision between a document's initial uri and a document's subschema's uri 291s ok 2 - detected collision between two document subschema uris 291s 1..2 291s ok 9 - resource collisions in canonical uris 291s # Subtest: relative uri in $id 291s ok 1 - root schema location is correctly identified 291s ok 2 - properly able to traverse a recursive schema using a relative $id 291s 1..2 291s ok 10 - relative uri in $id 291s 1..10 291s ok 292s t/formats.t ............................. 292s # Subtest: no validation 292s ok 1 - validate_formats=0 disables format assertion behaviour; annotation is still produced 292s ok 2 - format validation can be turned off in evaluate() 292s 1..2 292s ok 1 - no validation 292s # Subtest: simple validation 292s ok 1 - non-string values are valid, and produce an annotation 292s ok 2 - simple success 292s ok 3 - simple failure 292s ok 4 - format_validation defaults to false 292s ok 5 - format validation can be turned on in evaluate() 292s ok 6 - ...but the value is still false on the object 292s 1..6 292s ok 2 - simple validation 292s # Subtest: override a format sub 292s ok 1 - check syntax of override to existing format via constructor 292s ok 2 - check syntax of override format name to existing format via setter 292s ok 3 - check syntax of override definition value to existing format via setter 292s ok 4 - type is required if passing a hashref 292s ok 5 - cannot override a core format to support a different data type 292s ok 6 - can override a core format definition, as long as it uses the same type 292s ok 7 - check syntax of implementation for a new format 292s ok 8 - check syntax of implementation when adding an override to existing format 292s ok 9 - check syntax of implementation when adding a new format 292s ok 10 - swapping out format implementation turns success into failure; wrong types are still valid 292s ok 11 - can override a custom format definition to use a different type 292s 1..11 292s ok 3 - override a format sub 292s # Subtest: toggle validate_formats after adding schema 292s ok 1 - assertion behaviour is off initially 292s ok 2 - assertion behaviour can be enabled later with an already-loaded schema 292s ok 3 - valid assertion behaviour does not die 292s ok 4 - a schema document can be used with another evaluator with assertion behaviour 292s ok 5 - valid assertion behaviour does not die 292s 1..5 292s ok 4 - toggle validate_formats after adding schema 292s # Subtest: custom metaschemas 292s ok 1 - custom metaschema using format-assertion=false validates formats 292s ok 2 - custom metaschema using format-assertion=true validates formats 292s 1..2 292s ok 5 - custom metaschemas 292s # Subtest: core formats added after draft7 292s ok 1 - duration is not implemented in draft7 292s ok 2 - uuid is not implemented in draft7 292s 1..2 292s ok 6 - core formats added after draft7 292s # Subtest: unimplemented core formats 292s ok 1 - draft4 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 292s ok 2 - draft6 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 292s ok 3 - draft7 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 292s ok 4 - draft2019-09 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 292s ok 5 - draft2020-12 with validate_formats = 1 and default dialect, no error when an unimplemented core format is used 292s ok 6 - draft2020-12 with Format-Assertion vocabulary: error when using a core format that is unimplemented 292s ok 7 - draft2020-12 with Format-Assertion vocabulary: error is seen even when containing subschema would be true, and evaluation is short-circuited 292s ok 8 - unimplemented core format can have a custom definition provided 292s 1..8 292s ok 7 - unimplemented core formats 292s # Subtest: unknown custom formats 292s ok 1 - draft4: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 292s ok 2 - draft6: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 292s ok 3 - draft7: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 292s ok 4 - draft2019-09: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure; annotation is still produced 292s ok 5 - draft2020-12: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure; annotation is still produced 292s ok 6 - draft2020-12: for format validation with the Format-Assertion vocabulary, no errors during traversal when using an unknown custom format 292s ok 7 - draft2020-12: for format validation with the Format-Assertion vocabulary, unrecognized custom formats are detected at evaluation time 292s ok 8 - ...but this error can be avoided if the keyword is never evaluated 292s 1..8 292s ok 8 - unknown custom formats 292s # Subtest: format: invalid base type(s) 292s ok 1 - integer is not a valid base type for a format validation 292s ok 2 - integer, string is not a valid base type for a format validation 292s 1..2 292s ok 9 - format: invalid base type(s) 292s # Subtest: format: pure_integer 292s ok 1 - pure_integer format with type 292s ok 2 - pure_integer format without type 292s 1..2 292s ok 10 - format: pure_integer 292s # Subtest: formats supporting multiple core types 292s ok 1 - int64 format without type - accepts both numbers and strings 292s ok 2 - int64 format without type - accepts both numbers and strings 292s 1..2 292s ok 11 - formats supporting multiple core types 292s # Subtest: stringy numbers with a numeric format 292s ok 1 - FormatAnnotation+validate_formats: strings that look like numbers can be validated against a numeric format when stringy_numbers=1 292s ok 2 - FormatAssertion: strings that look like numbers can be validated against a numeric format when stringy_numbers=1 292s 1..2 292s ok 12 - stringy numbers with a numeric format 292s # Subtest: annotation formats using implementations that rely on optional dependencies 292s ok 1 - can annotate a non-string against formats without their optional dependencies, without dying 292s 1..1 292s ok 13 - annotation formats using implementations that rely on optional dependencies 292s # Subtest: assertion formats using implementations that rely on optional dependencies 292s ok 1 - draft4: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 292s ok 2 - draft4: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 292s ok 3 - draft6: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 292s ok 4 - draft6: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 292s ok 5 - draft7: for format validation with the Format-Annotation vocabulary, can assert a non-string against formats without their optional dependencies, without dying 292s ok 6 - draft7: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 292s 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 292s ok 8 - draft2019-09: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 292s 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 292s ok 10 - draft2020-12: for format validation with the Format-Annotation vocabulary, in assertion mode, we treat missing prereqs as the format being valid 292s ok 11 - draft2020-12: for format validation with the Format-Assertion vocabulary, no errors during traversal when using an unknown custom format 292s ok 12 - ...but we do warn for the missing module 292s ok 13 - draft2020-12: for Format-Asertion vocabulary, we immediately abort when encountering a format that throws an exception 292s 1..13 292s ok 14 - assertion formats using implementations that rely on optional dependencies 292s 1..14 292s ok 293s t/invalid-schemas.t ..................... 293s # 293s # AUTHOR_TESTING: 293s # AUTOMATED_TESTING: 1 293s # EXTENDED_TESTING: 293s # NO_TODO: 293s # TEST_DIR: 293s # NO_SHORT_CIRCUIT: 293s # 293s # running tests in /tmp/autopkgtest.Ge9z6k/autopkgtest_tmp/smokewgxowV/t/invalid-schemas against draft2019-09... 293s # 293s ok 1 - invalid-input.json: "invalid user input: type (string)" - "graceful error from 'type' (string)" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "type value is not a string", 293s # "instanceLocation": "", 293s # "keywordLocation": "/type" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "type value is not a string", 293s # "instanceLocation": "", 293s # "keywordLocation": "/type" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s ok 2 - invalid-input.json: "invalid user input: type (array)" - "graceful error from 'type' (array)" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "unrecognized type \"\"", 293s # "instanceLocation": "", 293s # "keywordLocation": "/type" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "unrecognized type \"\"", 293s # "instanceLocation": "", 293s # "keywordLocation": "/type" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s # 293s ok 3 - ref.json: "invalid $ref: unencoded characters" - "unencoded characters in $ref uri" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "$ref value is not a valid URI reference", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$defs/foo/$ref" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "$ref value is not a valid URI reference", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$defs/foo/$ref" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s ok 4 - ref.json: "invalid $ref: non-ascii characters" - "non-ascii characters in $ref uri" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "$ref value is not a valid URI reference", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$defs/foo/$ref" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "$ref value is not a valid URI reference", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$defs/foo/$ref" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s # 293s ok 5 - vocabulary.json: "invalid $vocabulary: need boolean values" - "an invalid $vocabulary value (value should be a boolean)" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s ok 6 - vocabulary.json: "invalid $vocabulary: uri must not have unencoded characters" - "unencoded characters in $vocabulary uri" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "\"http://foo^bar/path\" is not a valid URI", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "\"http://foo^bar/path\" is not a valid URI", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s ok 7 - vocabulary.json: "invalid $vocabulary: non-ascii characters in uri" - "non-ascii characters in $vocabulary uri" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s ok 8 - vocabulary.json: "invalid $vocabulary: missing scheme" - "$vocabulary uri is missing a scheme" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "\"foo.com\" is not a valid URI", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/foo.com" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "\"foo.com\" is not a valid URI", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/foo.com" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s # 293s # generated with: Test::JSON::Schema::Acceptance 1.029 293s # specification version: draft2019-09 293s # using custom test directory: t/invalid-schemas 293s # optional tests included: no 293s # 293s # filename pass todo-fail fail 293s # --------------------------------------------------------------- 293s # invalid-input.json 2 0 0 293s # ref.json 2 0 0 293s # vocabulary.json 4 0 0 293s # --------------------------------------------------------------- 293s # TOTAL 8 0 0 293s # 293s # Congratulations, all non-optional tests are passing! 293s # 293s ok 9 - no leaks in the main evaluator object 293s ok 10 - no leaks in the short-circuiting evaluator object 293s # 293s # AUTHOR_TESTING: 293s # AUTOMATED_TESTING: 1 293s # EXTENDED_TESTING: 293s # NO_TODO: 293s # TEST_DIR: 293s # NO_SHORT_CIRCUIT: 293s # 293s # running tests in /tmp/autopkgtest.Ge9z6k/autopkgtest_tmp/smokewgxowV/t/invalid-schemas against draft2020-12... 293s # 293s ok 11 - invalid-input.json: "invalid user input: type (string)" - "graceful error from 'type' (string)" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "type value is not a string", 293s # "instanceLocation": "", 293s # "keywordLocation": "/type" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "type value is not a string", 293s # "instanceLocation": "", 293s # "keywordLocation": "/type" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s ok 12 - invalid-input.json: "invalid user input: type (array)" - "graceful error from 'type' (array)" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "unrecognized type \"\"", 293s # "instanceLocation": "", 293s # "keywordLocation": "/type" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "unrecognized type \"\"", 293s # "instanceLocation": "", 293s # "keywordLocation": "/type" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s # 293s ok 13 - ref.json: "invalid $ref: unencoded characters" - "unencoded characters in $ref uri" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "$ref value is not a valid URI reference", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$defs/foo/$ref" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "$ref value is not a valid URI reference", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$defs/foo/$ref" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s ok 14 - ref.json: "invalid $ref: non-ascii characters" - "non-ascii characters in $ref uri" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "$ref value is not a valid URI reference", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$defs/foo/$ref" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "$ref value is not a valid URI reference", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$defs/foo/$ref" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s # 293s ok 15 - vocabulary.json: "invalid $vocabulary: need boolean values" - "an invalid $vocabulary value (value should be a boolean)" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s ok 16 - vocabulary.json: "invalid $vocabulary: uri must not have unencoded characters" - "unencoded characters in $vocabulary uri" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "\"http://foo^bar/path\" is not a valid URI", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "\"http://foo^bar/path\" is not a valid URI", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s ok 17 - vocabulary.json: "invalid $vocabulary: non-ascii characters in uri" - "non-ascii characters in $vocabulary uri" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s ok 18 - vocabulary.json: "invalid $vocabulary: missing scheme" - "$vocabulary uri is missing a scheme" { 293s # result: { 293s # "errors": [ 293s # { 293s # "error": "\"foo.com\" is not a valid URI", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/foo.com" 293s # } 293s # ], 293s # "valid": false 293s # } 293s # short-circuited result: { 293s # "errors": [ 293s # { 293s # "error": "\"foo.com\" is not a valid URI", 293s # "instanceLocation": "", 293s # "keywordLocation": "/$vocabulary/foo.com" 293s # } 293s # ], 293s # "valid": false 293s # } 293s ok 1 - test passes: data is valid: false 293s 1..1 293s } 293s # 293s # generated with: Test::JSON::Schema::Acceptance 1.029 293s # specification version: draft2020-12 293s # using custom test directory: t/invalid-schemas 293s # optional tests included: no 293s # 293s # filename pass todo-fail fail 293s # --------------------------------------------------------------- 293s # invalid-input.json 2 0 0 293s # ref.json 2 0 0 293s # vocabulary.json 4 0 0 293s # --------------------------------------------------------------- 293s # TOTAL 8 0 0 293s # 293s # Congratulations, all non-optional tests are passing! 293s # 293s ok 19 - no leaks in the main evaluator object 293s ok 20 - no leaks in the short-circuiting evaluator object 293s 1..20 293s ok 294s t/max_traversal_depth.t ................. 294s ok 1 - evaluation is halted when traversal gets too deep 294s ok 2 - evaluation is halted when an instance location is evaluated against the same schema location a second time 294s ok 3 - the seen counter does not confuse URI paths and fragments: /properties/foo vs \#/properties/foo 294s ok 4 - the seen counter does not confuse two subschemas that both apply the same definition to the same instance location 294s 1..4 294s ok 295s t/multipleOf.t .......................... 295s # Subtest: multipleOf, native types 295s ok 1 - 4 is a multiple of 2 295s ok 2 - 4 is a multiple of 1 295s ok 3 - 4 is not a multiple of 3 295s ok 4 - 4.5 is a multiple of 1.5 295s ok 5 - 4.5 is not a multiple of 1 295s ok 6 - 4.5 is not a multiple of 3 295s ok 7 - 4 is a multiple of 2 295s ok 8 - 4 is not a multiple of 2.5 295s ok 9 - 5 is a multiple of 2.5 295s ok 10 - 4.5 is a multiple of 2.25 295s ok 11 - 4.5 is not a multiple of 2.5 295s ok 12 - 4.5 is not a multiple of 2 295s ok 13 - -9223372036854775808 is a multiple of 0.5 295s ok 14 - 9223372036854775807 is a multiple of 0.5 295s ok 15 - 18446744073709551615 is a multiple of 0.5 295s 1..15 295s ok 1 - multipleOf, native types 295s # Subtest: multipleOf, data is a bignum 295s ok 1 - 4 is a multiple of 2 295s ok 2 - 4 is a multiple of 1 295s ok 3 - 4 is not a multiple of 3 295s ok 4 - 4.5 is a multiple of 1.5 295s ok 5 - 4.5 is not a multiple of 1 295s ok 6 - 4.5 is not a multiple of 3 295s ok 7 - 4 is a multiple of 2 295s ok 8 - 4 is not a multiple of 2.5 295s ok 9 - 5 is a multiple of 2.5 295s ok 10 - 4.5 is a multiple of 2.25 295s ok 11 - 4.5 is not a multiple of 2.5 295s ok 12 - 4.5 is not a multiple of 2 295s ok 13 - -9223372036854775808 is a multiple of 0.5 295s ok 14 - 9223372036854775807 is a multiple of 0.5 295s ok 15 - 18446744073709551615 is a multiple of 0.5 295s 1..15 295s ok 2 - multipleOf, data is a bignum 295s # Subtest: multipleOf, multipleOf is a bignum 295s ok 1 - 4 is a multiple of 2 295s ok 2 - 4 is a multiple of 1 295s ok 3 - 4 is not a multiple of 3 295s ok 4 - 4.5 is a multiple of 1.5 295s ok 5 - 4.5 is not a multiple of 1 295s ok 6 - 4.5 is not a multiple of 3 295s ok 7 - 4 is a multiple of 2 295s ok 8 - 4 is not a multiple of 2.5 295s ok 9 - 5 is a multiple of 2.5 295s ok 10 - 4.5 is a multiple of 2.25 295s ok 11 - 4.5 is not a multiple of 2.5 295s ok 12 - 4.5 is not a multiple of 2 295s ok 13 - -9223372036854775808 is a multiple of 0.5 295s ok 14 - 9223372036854775807 is a multiple of 0.5 295s ok 15 - 18446744073709551615 is a multiple of 0.5 295s 1..15 295s ok 3 - multipleOf, multipleOf is a bignum 295s # Subtest: multipleOf, data and multipleOf are bignums 295s ok 1 - 4 is a multiple of 2 295s ok 2 - 4 is a multiple of 1 295s ok 3 - 4 is not a multiple of 3 295s ok 4 - 4.5 is a multiple of 1.5 295s ok 5 - 4.5 is not a multiple of 1 295s ok 6 - 4.5 is not a multiple of 3 295s ok 7 - 4 is a multiple of 2 295s ok 8 - 4 is not a multiple of 2.5 295s ok 9 - 5 is a multiple of 2.5 295s ok 10 - 4.5 is a multiple of 2.25 295s ok 11 - 4.5 is not a multiple of 2.5 295s ok 12 - 4.5 is not a multiple of 2 295s ok 13 - -9223372036854775808 is a multiple of 0.5 295s ok 14 - 9223372036854775807 is a multiple of 0.5 295s ok 15 - 18446744073709551615 is a multiple of 0.5 295s 1..15 295s ok 4 - multipleOf, data and multipleOf are bignums 295s 1..4 295s ok 296s t/output_format.t ....................... 296s ok 1 - output_format defaults to basic 296s ok 2 - Result object gets the output_format from the evaluator 296s ok 3 - basic format includes all errors linearly 296s ok 4 - flag format only includes the valid property 296s ok 5 - terse format omits errors from redundant applicator keywords 296s ok 6 - basic format includes all errors linearly 296s ok 7 - terse format does not omit these crucial errors 296s # Subtest: strict_basic 296s ok 1 - strict_basic turns json pointers into URIs, including uri escapes 296s 1..1 296s ok 8 - strict_basic 296s # Subtest: AND two result objects together 296s ok 1 - ANDing true and false results = invalid, but errors and annotations both preserved 296s ok 2 - ANDing two true results = valid 296s ok 3 - ANDing two false results = invalid 296s ok 4 - only Result objects can be processed 296s ok 5 - ANDing a result with itself is a no-op 296s 1..5 296s ok 9 - AND two result objects together 296s # Subtest: annotations 296s ok 1 - by default, annotations are included in the formatted output 296s ok 2 - but inclusion can be disabled 296s 1..2 296s ok 10 - annotations 296s # Subtest: data_only 296s ok 1 - data_only format outputs a string of data locations only, with duplicates removed 296s ok 2 - data_only format uses keyword locations when result came from traverse 296s 1..2 296s ok 11 - data_only 296s 1..11 296s ok 297s t/pattern.t ............................. 297s ok 1 - unchanged LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 297s ok 2 - unchanged LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 297s ok 3 - upgraded LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 297s ok 4 - upgraded LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 297s ok 5 - downgraded LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 297s ok 6 - downgraded LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 297s # Subtest: empty pattern 297s ok 1 - empty pattern in "pattern" will correctly match 297s ok 2 - empty pattern in "patternProperties" will correctly match 297s 1..2 297s ok 7 - empty pattern 297s 1..7 297s ok 298s t/ref.t ................................. 298s # Subtest: local JSON pointer 298s ok 1 - can follow local $ref to a true schema 298s ok 2 - can follow local $ref to a false schema 298s ok 3 - got error for unresolvable ref 298s ok 4 - no exception 298s 1..4 298s ok 1 - local JSON pointer 298s # Subtest: fragment with URI-escaped and JSON Pointer-escaped characters 298s ok 1 - can follow $ref with escaped components 298s 1..1 298s ok 2 - fragment with URI-escaped and JSON Pointer-escaped characters 298s # Subtest: local anchor 298s ok 1 - can follow local $ref to an $anchor to a true schema 298s ok 2 - can follow local $ref to an $anchor to a false schema 298s ok 3 - got error for unresolvable ref 298s ok 4 - no exception 298s 1..4 298s ok 3 - local anchor 298s # Subtest: $id with an empty fragment 298s ok 1 - $id with empty fragment can be found by $ref that did not include it; fragment not included in error either 298s 1..1 298s ok 4 - $id with an empty fragment 298s # Subtest: $recursiveRef without nesting behaves like $ref 298s ok 1 - $recursiveRef without nested $recursiveAnchor behaves like $ref 298s 1..1 298s ok 5 - $recursiveRef without nesting behaves like $ref 298s # Subtest: $recursiveRef without $recursiveAnchor behaves like $ref 298s ok 1 - $recursiveRef without $recursiveAnchor behaves like $ref 298s 1..1 298s ok 6 - $recursiveRef without $recursiveAnchor behaves like $ref 298s # Subtest: $recursiveAnchor must be at a schema resource root 298s ok 1 - $recursiveAnchor can only appear at a schema resource root 298s ok 2 - schema now valid when an $id is added 298s ok 3 - $recursiveAnchor can only appear at a schema resource root 298s ok 4 - properly detecting a bad $recursiveAnchor even before passing through a $ref 298s 1..4 298s ok 7 - $recursiveAnchor must be at a schema resource root 298s # Subtest: $recursiveAnchor and $recursiveRef - standard usecases 298s ok 1 - validation requires the override that is not in scope 298s ok 2 - $recursiveRef requires a $recursiveAnchor that does not exist 298s ok 3 - $recursiveRef with both $recursiveAnchors in scope 298s 1..3 298s ok 8 - $recursiveAnchor and $recursiveRef - standard usecases 298s # Subtest: $recursiveRef without $recursiveAnchor 298s ok 1 - $ref - one level recursion 298s ok 2 - $recursiveRef with no $recursiveAnchor in scope has the same outcome 298s 1..2 298s ok 9 - $recursiveRef without $recursiveAnchor 298s # Subtest: $recursiveAnchor in our dynamic scope, but not in the target schema 298s ok 1 - $recursiveAnchor does not exist in the target schema - local recursion only, so integers match 298s ok 2 - $recursiveAnchor does not exist in the target schema - no recursion 298s ok 3 - $recursiveAnchor does not exist in the target schema - local recursion only 298s 1..3 298s ok 10 - $recursiveAnchor in our dynamic scope, but not in the target schema 298s # Subtest: $dynamicRef without nesting behaves like $ref 298s ok 1 - $dynamicRef without nested $dynamicAnchor behaves like $ref 298s 1..1 298s ok 11 - $dynamicRef without nesting behaves like $ref 298s # Subtest: $recursiveRef without $dynamicAnchor behaves like $ref 298s ok 1 - $dynamicRef without $dynamicAnchor behaves like $ref 298s 1..1 298s ok 12 - $recursiveRef without $dynamicAnchor behaves like $ref 298s # Subtest: $dynamicAnchor and $dynamicRef - standard usecases 298s ok 1 - validation requires the override that is not in scope 298s ok 2 - $dynamicRef requires a $dynamicAnchor that does not exist 298s ok 3 - $dynamicRef must use a URI containing the dynamic anchor fragment 298s ok 4 - there is no outer $dynamicAnchor in scope to recurse to 298s ok 5 - we have an outer $dynamicAnchor, and are using the fragment URI, but we used $ref rather than $dynamicRef 298s ok 6 - there is an outer $dynamicAnchor in scope to recurse to, but $dynamicRef must use a URI containing the dynamic anchor fragment 298s ok 7 - now everything is in place to recurse to the base 298s ok 8 - there is no $dynamicAnchor at the original target, and no anchor used in the target URI 298s 1..8 298s ok 13 - $dynamicAnchor and $dynamicRef - standard usecases 298s # Subtest: $dynamicRef to $dynamicAnchor not directly in the evaluation path 298s ok 1 - second dynamic anchor is not in the evaluation path, but we found it via dynamic scope - type does not match 298s ok 2 - regular $anchor in dynamic scope should not be used by $dynamicRef 298s ok 3 - some other $dynamicAnchor in dynamic scope should not be used by $dynamicRef 298s ok 4 - second dynamic anchor is not in the evaluation path, but we found it via dynamic scope - type matches 298s ok 5 - the first dynamic scope is set by document uri, not just the $id keyword 298s 1..5 298s ok 14 - $dynamicRef to $dynamicAnchor not directly in the evaluation path 298s # Subtest: after leaving a dynamic scope, it should not be used by a $dynamicRef 298s ok 1 - first_scope is no longer in scope, so it is not used by $dynamicRef 298s 1..1 298s ok 15 - after leaving a dynamic scope, it should not be used by a $dynamicRef 298s # Subtest: anchors do not match 298s ok 1 - $dynamicRef goes to enhanced schema 298s ok 2 - $dynamicRef -> $dynamicAnchor -> $anchor is a no go: we stay at the original schema 298s 1..2 298s ok 16 - anchors do not match 298s # Subtest: reference to a non-schema location 298s ok 1 - $ref to a non-schema is not permitted 298s ok 2 - $dynamicRef to a non-schema is not permitted 298s ok 3 - $recursiveRef to a non-schema is not permitted 298s ok 4 - $schema to a non-schema is not permitted 298s 1..4 298s ok 17 - reference to a non-schema location 298s # Subtest: evaluate at a non-schema location 298s ok 1 - evaluating at a non-schema location is not permitted 298s 1..1 298s ok 18 - evaluate at a non-schema location 298s 1..18 298s ok 300s t/serialization.t ....................... 300s ok 1 - evaluated against an empty schema 300s ok 2 - evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 300s ok 3 - evaluate data against schema with custom dialect; format-annotation is used 300s ok 4 - frozen object contains all the right keys 300s ok 5 - thawed object contains all the right keys 300s ok 6 - evaluate again against an empty schema 300s ok 7 - in thawed object, evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 300s ok 8 - evaluate again against an empty schema 300s ok 9 - core vocabulary_class for a different spec version works in a thawed object 300s ok 10 - format-assertion vocabulary_class works in a thawed object 300s ok 11 - metaschema_vocabulary_classes works in a thawed object 300s ok 12 - media_type works in a thawed object 300s ok 13 - encoding works in a thawed object 300s # Subtest: thaw object in a separate process 300s ok 1 - thawed object in a new process contains all the right keys 300s ok 2 - in thawed object, evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 300s ok 3 - evaluate data against schema with custom dialect; format-assertion is used 300s 1..3 300s ok 14 - thaw object in a separate process 300s ok 15 - child process finished successfully 300s 1..15 300s ok 301s t/specification_version.t ............... 301s ok 1 - unrecognized $SPECIFICATION_VERSION 301s # Subtest: specification aliases 301s ok 1 - 2020-12 is an alias for draft2020-12 301s ok 2 - 2019-09 is an alias for draft2019-09 301s ok 3 - 7 is an alias for draft7 301s 1..3 301s ok 2 - specification aliases 301s # Subtest: $ref and older specification versions 301s ok 1 - $schema and $ref cannot be used together, when $schema is too old 301s 1..1 301s ok 3 - $ref and older specification versions 301s # Subtest: <= draft7: $ref in combination with any other keyword causes the other keywords to be ignored 301s ok 1 - keywords adjacent to $ref are not evaluated 301s 1..1 301s ok 4 - <= draft7: $ref in combination with any other keyword causes the other keywords to be ignored 301s # Subtest: $ref adjacent to a path used in a $ref 301s ok 1 - the presence of $ref also blocks the use of other $refs to adjacent locations 301s 1..1 301s ok 5 - $ref adjacent to a path used in a $ref 301s # Subtest: $defs support 301s ok 1 - $defs is not recognized in <= draft7 301s ok 2 - $defs is supported in > draft7 301s 1..2 301s ok 6 - $defs support 301s # Subtest: definitions support 301s ok 1 - definitions is not recognized in >= draft2019-09 301s ok 2 - warned when using no-longer-supported keyword 301s ok 3 - definitions is supported in <= draft7 301s 1..3 301s ok 7 - definitions support 301s # Subtest: dependencies, dependentRequired, dependentSchemas 301s ok 1 - dependencies is not recognized in >= draft2019-09 301s ok 2 - warned when using no-longer-supported keyword 301s ok 3 - dependentRequired is supported in >= draft2019-09 301s ok 4 - dependentSchemas is supported in >= draft2019-09 301s ok 5 - dependencies is supported in <= draft7 301s ok 6 - dependentRequired is not recognized in <= draft7 301s ok 7 - dependentSchemas is not recognized in <= draft7 301s 1..7 301s ok 8 - dependencies, dependentRequired, dependentSchemas 301s # Subtest: prefixItems, items and additionalItems 301s ok 1 - prefixitems+items works when specification_version >= draft2020-12 301s ok 2 - array form of items not supported when specification_version >= draft2020-12 301s ok 3 - additionalitems not recognized when specification_version >= draft2020-12 301s ok 4 - warned when using no-longer-supported keyword 301s ok 5 - prefixitems not supported when specification_version specifies other than draft2020-12 301s ok 6 - array-based items in >= draft2020-12 301s ok 7 - prefixItems + additionalItems 301s ok 8 - warned when using no-longer-supported keyword 301s ok 9 - prefixItems + schema-based items 301s ok 10 - schema-based items + additionalItems, failure case 301s ok 11 - warned when using no-longer-supported keyword 301s ok 12 - schema-based items + additionalItems, passing case 301s ok 13 - warned when using no-longer-supported keyword 301s 1..13 301s ok 9 - prefixItems, items and additionalItems 301s 1..9 301s ok 303s t/strict.t .............................. 303s ok 1 - strict defaults to false 303s ok 2 - by default, unknown keywords are allowed in evaluate() 303s ok 3 - strict mode disallows unknown keywords during evaluation via a config override 303s ok 4 - by default, unknown keywords are allowed in validate_schema() 303s ok 5 - strict mode disallows unknown keywords in validate_schema() via a config override 303s ok 6 - strict mode disallows unknown keywords during evaluation, even if the document was already traversed 303s ok 7 - strict mode disallows unknown keywords in the schema data passed to validate_schema() 303s ok 8 - strict mode disallows unknown keywords during traverse 303s ok 9 - strict mode only detected one property this time - bloop is evaluated 303s ok 10 - strict mode detects unknown keywords using draft7 303s 1..10 303s ok 304s t/stringy-numbers.t ..................... 304s # stringy_numbers = 0 304s ok 1 - strings cannot be used in place of numbers in schema for multipleOf 304s ok 2 - strings cannot be used in place of numbers in schema for maximum 304s ok 3 - strings cannot be used in place of numbers in schema for exclusiveMaximum 304s ok 4 - strings cannot be used in place of numbers in schema for minimum 304s ok 5 - strings cannot be used in place of numbers in schema for exclusiveMinimum 304s ok 6 - strings that do not look like numbers are never valid as numbers 304s ok 7 - by default "type": "string" does not accept numbers 304s ok 8 - real numbers are always evaluated 304s ok 9 - by default, stringy numbers are not evaluated by numeric keywords 304s ok 10 - data was not mutated 304s ok 11 - by default, stringy numbers are not the same as numbers using comparison keywords 304s ok 12 - data was not mutated 304s # stringy_numbers = 1 304s ok 13 - strings cannot be used in place of numbers in schema for multipleOf 304s ok 14 - strings cannot be used in place of numbers in schema for maximum 304s ok 15 - strings cannot be used in place of numbers in schema for exclusiveMaximum 304s ok 16 - strings cannot be used in place of numbers in schema for minimum 304s ok 17 - strings cannot be used in place of numbers in schema for exclusiveMinimum 304s ok 18 - strings that do not look like numbers are never valid as numbers 304s ok 19 - using stringy numbers, numeric strings are treated as numbers but are still not always integers 304s ok 20 - real numbers are always evaluated 304s ok 21 - with the config enabled, stringy numbers are treated as numbers by numeric keywords 304s ok 22 - data was not mutated 304s ok 23 - with the config enabled, stringy numbers are the same as numbers using comparison keywords 304s ok 24 - data was not mutated 304s 1..24 304s ok 305s t/traverse.t ............................ 305s # Subtest: traversal with callbacks 305s ok 1 - errors encountered during traversal are returned 305s ok 2 - callback for erroneous keyword was not called 305s ok 3 - extracted all the real $refs out of the schema, with locations and canonical targets 305s ok 4 - identified all subschemas 305s 1..4 305s ok 1 - traversal with callbacks 305s # Subtest: errors when parsing $schema keyword 305s ok 1 - $schema is not a string 305s ok 2 - $schema is not a URI 305s 1..2 305s ok 2 - errors when parsing $schema keyword 305s # Subtest: default metaschema 305s ok 1 - dialect is properly determined 305s ok 2 - error within $defs is found, showing both Core and Applicator vocabularies are used 305s 1..2 305s ok 3 - default metaschema 305s # Subtest: traversing a dialect with different core keywords 305s ok 1 - dialect changes at root, with $id - dialect is switched in time to get a new keyword list for the core vocabulary 305s ok 2 - other $state information is correct 305s ok 3 - no errors when parsing this schema 305s ok 4 - switched dialect in time to extract all identifiers, from root and definition 305s ok 5 - dialect changes at root, no $id - dialect is switched in time to get a new keyword list for the core vocabulary 305s ok 6 - dialect changes below root - dialect is switched in time to get a new keyword list for the core vocabulary 305s 1..6 305s ok 4 - traversing a dialect with different core keywords 305s # Subtest: $schema without an $id, below the root 305s ok 1 - $schema cannot exist without an $id, or at the root 305s 1..1 305s ok 5 - $schema without an $id, below the root 305s # Subtest: duplicate identifiers 305s ok 1 - detected colliding $ids within a single schema 305s ok 2 - two anchors with different base uris are acceptable 305s ok 3 - detected colliding $anchors within a single schema 305s 1..3 305s ok 6 - duplicate identifiers 305s # Subtest: $anchor without $id 305s ok 1 - found anchor at root, without an $id to pre-populate the identifiers hash 305s ok 2 - found anchor within schema, without an $id to pre-populate the identifiers hash 305s 1..2 305s ok 7 - $anchor without $id 305s # Subtest: traverse with overridden specification_version 305s ok 1 - $state is correct with no $schema keyword, no overrides 305s ok 2 - $state is correct with a $schema keyword, no overrides 305s ok 3 - $state is correct with no $schema keyword, and an overridden specification_version 305s ok 4 - $state is correct with a $schema keyword, and an overridden specification_version 305s 1..4 305s ok 8 - traverse with overridden specification_version 305s # Subtest: traverse with overridden metaschema_uri 305s ok 1 - metaschema_uri is not a known uri 305s ok 2 - boolean schema: metaschema_uri is overridden with a bad schema: same errors are returned 305s ok 3 - object schema: metaschema_uri is overridden with a bad schema: same errors are returned 305s ok 4 - metaschema_uri is overridden with a bad schema and there is a traversal path: errors contain the right locations 305s ok 5 - determined specification version and vocabularies to use for this schema from override 305s ok 6 - determined specification version and vocabularies to use for this schema from $schema keyword 305s ok 7 - when $schema keyword is used, custom metaschema_uri is never parsed, so there are no errors 305s 1..7 305s ok 9 - traverse with overridden metaschema_uri 305s # Subtest: start traversing below the document root 305s ok 1 - identified the overridden location of all errors during traverse 305s ok 2 - identifiers are correctly extracted when traversing below the document root 305s ok 3 - identifiers are correctly extracted when traversing below the document root, with anchor 305s 1..3 305s ok 10 - start traversing below the document root 305s 1..10 305s ok 306s t/type.t ................................ 306s # Subtest: inflated data, type: array 306s ok 1 - is_type("array", []) is true 306s ok 2 - get_type([]) = array 306s ok 3 - is_type("boolean", []) is false 306s ok 4 - is_type("integer", []) is false 306s ok 5 - is_type("null", []) is false 306s ok 6 - is_type("number", []) is false 306s ok 7 - is_type("object", []) is false 306s ok 8 - is_type("string", []) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("array", [1]) is true 306s ok 11 - get_type([1]) = array 306s ok 12 - is_type("boolean", [1]) is false 306s ok 13 - is_type("integer", [1]) is false 306s ok 14 - is_type("null", [1]) is false 306s ok 15 - is_type("number", [1]) is false 306s ok 16 - is_type("object", [1]) is false 306s ok 17 - is_type("string", [1]) is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s 1..18 306s ok 1 - inflated data, type: array 306s # Subtest: inflated data, type: boolean 306s ok 1 - is_type("boolean", false) is true 306s ok 2 - get_type(false) = boolean 306s ok 3 - is_type("array", false) is false 306s ok 4 - is_type("integer", false) is false 306s ok 5 - is_type("null", false) is false 306s ok 6 - is_type("number", false) is false 306s ok 7 - is_type("object", false) is false 306s ok 8 - is_type("string", false) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("boolean", true) is true 306s ok 11 - get_type(true) = boolean 306s ok 12 - is_type("array", true) is false 306s ok 13 - is_type("integer", true) is false 306s ok 14 - is_type("null", true) is false 306s ok 15 - is_type("number", true) is false 306s ok 16 - is_type("object", true) is false 306s ok 17 - is_type("string", true) is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s 1..18 306s ok 2 - inflated data, type: boolean 306s # Subtest: inflated data, type: integer 306s ok 1 - is_type("integer", 0) is true 306s ok 2 - is_type("number", 0) is true 306s ok 3 - get_type(0) = integer 306s ok 4 - is_type("array", 0) is false 306s ok 5 - is_type("boolean", 0) is false 306s ok 6 - is_type("null", 0) is false 306s ok 7 - is_type("object", 0) is false 306s ok 8 - is_type("string", 0) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("integer", -1) is true 306s ok 11 - is_type("number", -1) is true 306s ok 12 - get_type(-1) = integer 306s ok 13 - is_type("array", -1) is false 306s ok 14 - is_type("boolean", -1) is false 306s ok 15 - is_type("null", -1) is false 306s ok 16 - is_type("object", -1) is false 306s ok 17 - is_type("string", -1) is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s ok 19 - is_type("integer", 2) is true 306s ok 20 - is_type("number", 2) is true 306s ok 21 - get_type(2) = integer 306s ok 22 - is_type("array", 2) is false 306s ok 23 - is_type("boolean", 2) is false 306s ok 24 - is_type("null", 2) is false 306s ok 25 - is_type("object", 2) is false 306s ok 26 - is_type("string", 2) is false 306s ok 27 - data is not tampered with while it is tested (not dualvar) 306s ok 28 - is_type("integer", 2.0) is true 306s ok 29 - is_type("number", 2.0) is true 306s ok 30 - get_type(2.0) = integer 306s ok 31 - is_type("array", 2.0) is false 306s ok 32 - is_type("boolean", 2.0) is false 306s ok 33 - is_type("null", 2.0) is false 306s ok 34 - is_type("object", 2.0) is false 306s ok 35 - is_type("string", 2.0) is false 306s ok 36 - data is not tampered with while it is tested (not dualvar) 306s ok 37 - is_type("integer", 2147483647) is true 306s ok 38 - is_type("number", 2147483647) is true 306s ok 39 - get_type(2147483647) = integer 306s ok 40 - is_type("array", 2147483647) is false 306s ok 41 - is_type("boolean", 2147483647) is false 306s ok 42 - is_type("null", 2147483647) is false 306s ok 43 - is_type("object", 2147483647) is false 306s ok 44 - is_type("string", 2147483647) is false 306s ok 45 - data is not tampered with while it is tested (not dualvar) 306s ok 46 - is_type("integer", 2147483648.0) is true 306s ok 47 - is_type("number", 2147483648.0) is true 306s ok 48 - get_type(2147483648.0) = integer 306s ok 49 - is_type("array", 2147483648.0) is false 306s ok 50 - is_type("boolean", 2147483648.0) is false 306s ok 51 - is_type("null", 2147483648.0) is false 306s ok 52 - is_type("object", 2147483648.0) is false 306s ok 53 - is_type("string", 2147483648.0) is false 306s ok 54 - data is not tampered with while it is tested (not dualvar) 306s ok 55 - is_type("integer", 9.22337203685478e+18) is true 306s ok 56 - is_type("number", 9.22337203685478e+18) is true 306s ok 57 - get_type(9.22337203685478e+18) = integer 306s ok 58 - is_type("array", 9.22337203685478e+18) is false 306s ok 59 - is_type("boolean", 9.22337203685478e+18) is false 306s ok 60 - is_type("null", 9.22337203685478e+18) is false 306s ok 61 - is_type("object", 9.22337203685478e+18) is false 306s ok 62 - is_type("string", 9.22337203685478e+18) is false 306s ok 63 - data is not tampered with while it is tested (not dualvar) 306s ok 64 - is_type("integer", 9.22337203685478e+18) is true 306s ok 65 - is_type("number", 9.22337203685478e+18) is true 306s ok 66 - get_type(9.22337203685478e+18) = integer 306s ok 67 - is_type("array", 9.22337203685478e+18) is false 306s ok 68 - is_type("boolean", 9.22337203685478e+18) is false 306s ok 69 - is_type("null", 9.22337203685478e+18) is false 306s ok 70 - is_type("object", 9.22337203685478e+18) is false 306s ok 71 - is_type("string", 9.22337203685478e+18) is false 306s ok 72 - data is not tampered with while it is tested (not dualvar) 306s ok 73 - is_type("integer", 1.84467440737096e+19) is true 306s ok 74 - is_type("number", 1.84467440737096e+19) is true 306s ok 75 - get_type(1.84467440737096e+19) = integer 306s ok 76 - is_type("array", 1.84467440737096e+19) is false 306s ok 77 - is_type("boolean", 1.84467440737096e+19) is false 306s ok 78 - is_type("null", 1.84467440737096e+19) is false 306s ok 79 - is_type("object", 1.84467440737096e+19) is false 306s ok 80 - is_type("string", 1.84467440737096e+19) is false 306s ok 81 - data is not tampered with while it is tested (not dualvar) 306s ok 82 - is_type("integer", 3.68934881474191e+19) is true 306s ok 83 - is_type("number", 3.68934881474191e+19) is true 306s ok 84 - get_type(3.68934881474191e+19) = integer 306s ok 85 - is_type("array", 3.68934881474191e+19) is false 306s ok 86 - is_type("boolean", 3.68934881474191e+19) is false 306s ok 87 - is_type("null", 3.68934881474191e+19) is false 306s ok 88 - is_type("object", 3.68934881474191e+19) is false 306s ok 89 - is_type("string", 3.68934881474191e+19) is false 306s ok 90 - data is not tampered with while it is tested (not dualvar) 306s ok 91 - is_type("integer", 1000000000000000) is true 306s ok 92 - is_type("number", 1000000000000000) is true 306s ok 93 - get_type(1000000000000000) = integer 306s ok 94 - is_type("array", 1000000000000000) is false 306s ok 95 - is_type("boolean", 1000000000000000) is false 306s ok 96 - is_type("null", 1000000000000000) is false 306s ok 97 - is_type("object", 1000000000000000) is false 306s ok 98 - is_type("string", 1000000000000000) is false 306s ok 99 - data is not tampered with while it is tested (not dualvar) 306s ok 100 - is_type("integer", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 306s ok 101 - is_type("number", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 306s ok 102 - get_type(Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) = integer 306s ok 103 - is_type("array", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 104 - is_type("boolean", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 105 - is_type("null", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 106 - is_type("object", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 107 - is_type("string", Math::BigInt->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 108 - data is not tampered with while it is tested (not dualvar) 306s ok 109 - is_type("integer", Math::BigInt->new('1')) is true 306s ok 110 - is_type("number", Math::BigInt->new('1')) is true 306s ok 111 - get_type(Math::BigInt->new('1')) = integer 306s ok 112 - is_type("array", Math::BigInt->new('1')) is false 306s ok 113 - is_type("boolean", Math::BigInt->new('1')) is false 306s ok 114 - is_type("null", Math::BigInt->new('1')) is false 306s ok 115 - is_type("object", Math::BigInt->new('1')) is false 306s ok 116 - is_type("string", Math::BigInt->new('1')) is false 306s ok 117 - data is not tampered with while it is tested (not dualvar) 306s ok 118 - is_type("integer", Math::BigInt->new('1')) is true 306s ok 119 - is_type("number", Math::BigInt->new('1')) is true 306s ok 120 - get_type(Math::BigInt->new('1')) = integer 306s ok 121 - is_type("array", Math::BigInt->new('1')) is false 306s ok 122 - is_type("boolean", Math::BigInt->new('1')) is false 306s ok 123 - is_type("null", Math::BigInt->new('1')) is false 306s ok 124 - is_type("object", Math::BigInt->new('1')) is false 306s ok 125 - is_type("string", Math::BigInt->new('1')) is false 306s ok 126 - data is not tampered with while it is tested (not dualvar) 306s ok 127 - is_type("integer", Math::BigInt->new('12345123451234512345')) is true 306s ok 128 - is_type("number", Math::BigInt->new('12345123451234512345')) is true 306s ok 129 - get_type(Math::BigInt->new('12345123451234512345')) = integer 306s ok 130 - is_type("array", Math::BigInt->new('12345123451234512345')) is false 306s ok 131 - is_type("boolean", Math::BigInt->new('12345123451234512345')) is false 306s ok 132 - is_type("null", Math::BigInt->new('12345123451234512345')) is false 306s ok 133 - is_type("object", Math::BigInt->new('12345123451234512345')) is false 306s ok 134 - is_type("string", Math::BigInt->new('12345123451234512345')) is false 306s ok 135 - data is not tampered with while it is tested (not dualvar) 306s ok 136 - is_type("integer", Math::BigFloat->new('12345123451234512345')) is true 306s ok 137 - is_type("number", Math::BigFloat->new('12345123451234512345')) is true 306s ok 138 - get_type(Math::BigFloat->new('12345123451234512345')) = integer 306s ok 139 - is_type("array", Math::BigFloat->new('12345123451234512345')) is false 306s ok 140 - is_type("boolean", Math::BigFloat->new('12345123451234512345')) is false 306s ok 141 - is_type("null", Math::BigFloat->new('12345123451234512345')) is false 306s ok 142 - is_type("object", Math::BigFloat->new('12345123451234512345')) is false 306s ok 143 - is_type("string", Math::BigFloat->new('12345123451234512345')) is false 306s ok 144 - data is not tampered with while it is tested (not dualvar) 306s ok 145 - is_type("integer", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 306s ok 146 - is_type("number", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 306s ok 147 - get_type(Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) = integer 306s ok 148 - is_type("array", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 149 - is_type("boolean", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 150 - is_type("null", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 151 - is_type("object", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 152 - is_type("string", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 153 - data is not tampered with while it is tested (not dualvar) 306s ok 154 - is_type("integer", Math::BigFloat->new('20000000000000')) is true 306s ok 155 - is_type("number", Math::BigFloat->new('20000000000000')) is true 306s ok 156 - get_type(Math::BigFloat->new('20000000000000')) = integer 306s ok 157 - is_type("array", Math::BigFloat->new('20000000000000')) is false 306s ok 158 - is_type("boolean", Math::BigFloat->new('20000000000000')) is false 306s ok 159 - is_type("null", Math::BigFloat->new('20000000000000')) is false 306s ok 160 - is_type("object", Math::BigFloat->new('20000000000000')) is false 306s ok 161 - is_type("string", Math::BigFloat->new('20000000000000')) is false 306s ok 162 - data is not tampered with while it is tested (not dualvar) 306s ok 163 - is_type("integer", Math::BigFloat->new('20')) is true 306s ok 164 - is_type("number", Math::BigFloat->new('20')) is true 306s ok 165 - get_type(Math::BigFloat->new('20')) = integer 306s ok 166 - is_type("array", Math::BigFloat->new('20')) is false 306s ok 167 - is_type("boolean", Math::BigFloat->new('20')) is false 306s ok 168 - is_type("null", Math::BigFloat->new('20')) is false 306s ok 169 - is_type("object", Math::BigFloat->new('20')) is false 306s ok 170 - is_type("string", Math::BigFloat->new('20')) is false 306s ok 171 - data is not tampered with while it is tested (not dualvar) 306s ok 172 - is_type("integer", Math::BigFloat->new('1')) is true 306s ok 173 - is_type("number", Math::BigFloat->new('1')) is true 306s ok 174 - get_type(Math::BigFloat->new('1')) = integer 306s ok 175 - is_type("array", Math::BigFloat->new('1')) is false 306s ok 176 - is_type("boolean", Math::BigFloat->new('1')) is false 306s ok 177 - is_type("null", Math::BigFloat->new('1')) is false 306s ok 178 - is_type("object", Math::BigFloat->new('1')) is false 306s ok 179 - is_type("string", Math::BigFloat->new('1')) is false 306s ok 180 - data is not tampered with while it is tested (not dualvar) 306s ok 181 - is_type("integer", Math::BigFloat->new('1')) is true 306s ok 182 - is_type("number", Math::BigFloat->new('1')) is true 306s ok 183 - get_type(Math::BigFloat->new('1')) = integer 306s ok 184 - is_type("array", Math::BigFloat->new('1')) is false 306s ok 185 - is_type("boolean", Math::BigFloat->new('1')) is false 306s ok 186 - is_type("null", Math::BigFloat->new('1')) is false 306s ok 187 - is_type("object", Math::BigFloat->new('1')) is false 306s ok 188 - is_type("string", Math::BigFloat->new('1')) is false 306s ok 189 - data is not tampered with while it is tested (not dualvar) 306s 1..189 306s ok 3 - inflated data, type: integer 306s # Subtest: inflated data, type: null 306s ok 1 - is_type("null", null) is true 306s ok 2 - get_type(null) = null 306s ok 3 - is_type("array", null) is false 306s ok 4 - is_type("boolean", null) is false 306s ok 5 - is_type("integer", null) is false 306s ok 6 - is_type("number", null) is false 306s ok 7 - is_type("object", null) is false 306s ok 8 - is_type("string", null) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s 1..9 306s ok 4 - inflated data, type: null 306s # Subtest: inflated data, type: number 306s ok 1 - is_type("number", 3.1) is true 306s ok 2 - get_type(3.1) = number 306s ok 3 - is_type("array", 3.1) is false 306s ok 4 - is_type("boolean", 3.1) is false 306s ok 5 - is_type("integer", 3.1) is false 306s ok 6 - is_type("null", 3.1) is false 306s ok 7 - is_type("object", 3.1) is false 306s ok 8 - is_type("string", 3.1) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("number", 12345678901.2) is true 306s ok 11 - get_type(12345678901.2) = number 306s ok 12 - is_type("array", 12345678901.2) is false 306s ok 13 - is_type("boolean", 12345678901.2) is false 306s ok 14 - is_type("integer", 12345678901.2) is false 306s ok 15 - is_type("null", 12345678901.2) is false 306s ok 16 - is_type("object", 12345678901.2) is false 306s ok 17 - is_type("string", 12345678901.2) is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s ok 19 - is_type("number", Math::BigFloat->new('0.123')) is true 306s ok 20 - get_type(Math::BigFloat->new('0.123')) = number 306s ok 21 - is_type("array", Math::BigFloat->new('0.123')) is false 306s ok 22 - is_type("boolean", Math::BigFloat->new('0.123')) is false 306s ok 23 - is_type("integer", Math::BigFloat->new('0.123')) is false 306s ok 24 - is_type("null", Math::BigFloat->new('0.123')) is false 306s ok 25 - is_type("object", Math::BigFloat->new('0.123')) is false 306s ok 26 - is_type("string", Math::BigFloat->new('0.123')) is false 306s ok 27 - data is not tampered with while it is tested (not dualvar) 306s ok 28 - is_type("number", Math::BigFloat->new('12345123451234512345.2')) is true 306s ok 29 - get_type(Math::BigFloat->new('12345123451234512345.2')) = number 306s ok 30 - is_type("array", Math::BigFloat->new('12345123451234512345.2')) is false 306s ok 31 - is_type("boolean", Math::BigFloat->new('12345123451234512345.2')) is false 306s ok 32 - is_type("integer", Math::BigFloat->new('12345123451234512345.2')) is false 306s ok 33 - is_type("null", Math::BigFloat->new('12345123451234512345.2')) is false 306s ok 34 - is_type("object", Math::BigFloat->new('12345123451234512345.2')) is false 306s ok 35 - is_type("string", Math::BigFloat->new('12345123451234512345.2')) is false 306s ok 36 - data is not tampered with while it is tested (not dualvar) 306s 1..36 306s ok 5 - inflated data, type: number 306s # Subtest: inflated data, type: object 306s ok 1 - is_type("object", {}) is true 306s ok 2 - get_type({}) = object 306s ok 3 - is_type("array", {}) is false 306s ok 4 - is_type("boolean", {}) is false 306s ok 5 - is_type("integer", {}) is false 306s ok 6 - is_type("null", {}) is false 306s ok 7 - is_type("number", {}) is false 306s ok 8 - is_type("string", {}) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("object", {"a" : 1}) is true 306s ok 11 - get_type({"a" : 1}) = object 306s ok 12 - is_type("array", {"a" : 1}) is false 306s ok 13 - is_type("boolean", {"a" : 1}) is false 306s ok 14 - is_type("integer", {"a" : 1}) is false 306s ok 15 - is_type("null", {"a" : 1}) is false 306s ok 16 - is_type("number", {"a" : 1}) is false 306s ok 17 - is_type("string", {"a" : 1}) is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s 1..18 306s ok 6 - inflated data, type: object 306s # Subtest: inflated data, type: string 306s ok 1 - is_type("string", "") is true 306s ok 2 - get_type("") = string 306s ok 3 - is_type("array", "") is false 306s ok 4 - is_type("boolean", "") is false 306s ok 5 - is_type("integer", "") is false 306s ok 6 - is_type("null", "") is false 306s ok 7 - is_type("number", "") is false 306s ok 8 - is_type("object", "") is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("string", "0") is true 306s ok 11 - get_type("0") = string 306s ok 12 - is_type("array", "0") is false 306s ok 13 - is_type("boolean", "0") is false 306s ok 14 - is_type("integer", "0") is false 306s ok 15 - is_type("null", "0") is false 306s ok 16 - is_type("number", "0") is false 306s ok 17 - is_type("object", "0") is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s ok 19 - is_type("string", "-1") is true 306s ok 20 - get_type("-1") = string 306s ok 21 - is_type("array", "-1") is false 306s ok 22 - is_type("boolean", "-1") is false 306s ok 23 - is_type("integer", "-1") is false 306s ok 24 - is_type("null", "-1") is false 306s ok 25 - is_type("number", "-1") is false 306s ok 26 - is_type("object", "-1") is false 306s ok 27 - data is not tampered with while it is tested (not dualvar) 306s ok 28 - is_type("string", "2") is true 306s ok 29 - get_type("2") = string 306s ok 30 - is_type("array", "2") is false 306s ok 31 - is_type("boolean", "2") is false 306s ok 32 - is_type("integer", "2") is false 306s ok 33 - is_type("null", "2") is false 306s ok 34 - is_type("number", "2") is false 306s ok 35 - is_type("object", "2") is false 306s ok 36 - data is not tampered with while it is tested (not dualvar) 306s ok 37 - is_type("string", "2.0") is true 306s ok 38 - get_type("2.0") = string 306s ok 39 - is_type("array", "2.0") is false 306s ok 40 - is_type("boolean", "2.0") is false 306s ok 41 - is_type("integer", "2.0") is false 306s ok 42 - is_type("null", "2.0") is false 306s ok 43 - is_type("number", "2.0") is false 306s ok 44 - is_type("object", "2.0") is false 306s ok 45 - data is not tampered with while it is tested (not dualvar) 306s ok 46 - is_type("string", "3.1") is true 306s ok 47 - get_type("3.1") = string 306s ok 48 - is_type("array", "3.1") is false 306s ok 49 - is_type("boolean", "3.1") is false 306s ok 50 - is_type("integer", "3.1") is false 306s ok 51 - is_type("null", "3.1") is false 306s ok 52 - is_type("number", "3.1") is false 306s ok 53 - is_type("object", "3.1") is false 306s ok 54 - data is not tampered with while it is tested (not dualvar) 306s ok 55 - is_type("string", "école") is true 306s ok 56 - get_type("école") = string 306s ok 57 - is_type("array", "école") is false 306s ok 58 - is_type("boolean", "école") is false 306s ok 59 - is_type("integer", "école") is false 306s ok 60 - is_type("null", "école") is false 306s ok 61 - is_type("number", "école") is false 306s ok 62 - is_type("object", "école") is false 306s ok 63 - data is not tampered with while it is tested (not dualvar) 306s ok 64 - is_type("string", "ಠ_ಠ") is true 306s ok 65 - get_type("ಠ_ಠ") = string 306s ok 66 - is_type("array", "ಠ_ಠ") is false 306s ok 67 - is_type("boolean", "ಠ_ಠ") is false 306s ok 68 - is_type("integer", "ಠ_ಠ") is false 306s ok 69 - is_type("null", "ಠ_ಠ") is false 306s ok 70 - is_type("number", "ಠ_ಠ") is false 306s ok 71 - is_type("object", "ಠ_ಠ") is false 306s ok 72 - data is not tampered with while it is tested (not dualvar) 306s 1..72 306s ok 7 - inflated data, type: string 306s # Subtest: JSON-encoded data, type: array 306s ok 1 - is_type("array", []) is true 306s ok 2 - get_type([]) = array 306s ok 3 - is_type("boolean", []) is false 306s ok 4 - is_type("integer", []) is false 306s ok 5 - is_type("null", []) is false 306s ok 6 - is_type("number", []) is false 306s ok 7 - is_type("object", []) is false 306s ok 8 - is_type("string", []) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("array", [1]) is true 306s ok 11 - get_type([1]) = array 306s ok 12 - is_type("boolean", [1]) is false 306s ok 13 - is_type("integer", [1]) is false 306s ok 14 - is_type("null", [1]) is false 306s ok 15 - is_type("number", [1]) is false 306s ok 16 - is_type("object", [1]) is false 306s ok 17 - is_type("string", [1]) is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s 1..18 306s ok 8 - JSON-encoded data, type: array 306s # Subtest: JSON-encoded data, type: boolean 306s ok 1 - is_type("boolean", false) is true 306s ok 2 - get_type(false) = boolean 306s ok 3 - is_type("array", false) is false 306s ok 4 - is_type("integer", false) is false 306s ok 5 - is_type("null", false) is false 306s ok 6 - is_type("number", false) is false 306s ok 7 - is_type("object", false) is false 306s ok 8 - is_type("string", false) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("boolean", true) is true 306s ok 11 - get_type(true) = boolean 306s ok 12 - is_type("array", true) is false 306s ok 13 - is_type("integer", true) is false 306s ok 14 - is_type("null", true) is false 306s ok 15 - is_type("number", true) is false 306s ok 16 - is_type("object", true) is false 306s ok 17 - is_type("string", true) is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s 1..18 306s ok 9 - JSON-encoded data, type: boolean 306s # Subtest: JSON-encoded data, type: integer 306s ok 1 - is_type("integer", 0) is true 306s ok 2 - is_type("number", 0) is true 306s ok 3 - get_type(0) = integer 306s ok 4 - is_type("array", 0) is false 306s ok 5 - is_type("boolean", 0) is false 306s ok 6 - is_type("null", 0) is false 306s ok 7 - is_type("object", 0) is false 306s ok 8 - is_type("string", 0) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("integer", -1) is true 306s ok 11 - is_type("number", -1) is true 306s ok 12 - get_type(-1) = integer 306s ok 13 - is_type("array", -1) is false 306s ok 14 - is_type("boolean", -1) is false 306s ok 15 - is_type("null", -1) is false 306s ok 16 - is_type("object", -1) is false 306s ok 17 - is_type("string", -1) is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s ok 19 - is_type("integer", Math::BigFloat->new('2')) is true 306s ok 20 - is_type("number", Math::BigFloat->new('2')) is true 306s ok 21 - get_type(Math::BigFloat->new('2')) = integer 306s ok 22 - is_type("array", Math::BigFloat->new('2')) is false 306s ok 23 - is_type("boolean", Math::BigFloat->new('2')) is false 306s ok 24 - is_type("null", Math::BigFloat->new('2')) is false 306s ok 25 - is_type("object", Math::BigFloat->new('2')) is false 306s ok 26 - is_type("string", Math::BigFloat->new('2')) is false 306s ok 27 - data is not tampered with while it is tested (not dualvar) 306s ok 28 - is_type("integer", 2147483647) is true 306s ok 29 - is_type("number", 2147483647) is true 306s ok 30 - get_type(2147483647) = integer 306s ok 31 - is_type("array", 2147483647) is false 306s ok 32 - is_type("boolean", 2147483647) is false 306s ok 33 - is_type("null", 2147483647) is false 306s ok 34 - is_type("object", 2147483647) is false 306s ok 35 - is_type("string", 2147483647) is false 306s ok 36 - data is not tampered with while it is tested (not dualvar) 306s ok 37 - is_type("integer", 2147483648) is true 306s ok 38 - is_type("number", 2147483648) is true 306s ok 39 - get_type(2147483648) = integer 306s ok 40 - is_type("array", 2147483648) is false 306s ok 41 - is_type("boolean", 2147483648) is false 306s ok 42 - is_type("null", 2147483648) is false 306s ok 43 - is_type("object", 2147483648) is false 306s ok 44 - is_type("string", 2147483648) is false 306s ok 45 - data is not tampered with while it is tested (not dualvar) 306s ok 46 - is_type("integer", Math::BigFloat->new('9223372036854780000')) is true 306s ok 47 - is_type("number", Math::BigFloat->new('9223372036854780000')) is true 306s ok 48 - get_type(Math::BigFloat->new('9223372036854780000')) = integer 306s ok 49 - is_type("array", Math::BigFloat->new('9223372036854780000')) is false 306s ok 50 - is_type("boolean", Math::BigFloat->new('9223372036854780000')) is false 306s ok 51 - is_type("null", Math::BigFloat->new('9223372036854780000')) is false 306s ok 52 - is_type("object", Math::BigFloat->new('9223372036854780000')) is false 306s ok 53 - is_type("string", Math::BigFloat->new('9223372036854780000')) is false 306s ok 54 - data is not tampered with while it is tested (not dualvar) 306s ok 55 - is_type("integer", Math::BigFloat->new('9223372036854780000')) is true 306s ok 56 - is_type("number", Math::BigFloat->new('9223372036854780000')) is true 306s ok 57 - get_type(Math::BigFloat->new('9223372036854780000')) = integer 306s ok 58 - is_type("array", Math::BigFloat->new('9223372036854780000')) is false 306s ok 59 - is_type("boolean", Math::BigFloat->new('9223372036854780000')) is false 306s ok 60 - is_type("null", Math::BigFloat->new('9223372036854780000')) is false 306s ok 61 - is_type("object", Math::BigFloat->new('9223372036854780000')) is false 306s ok 62 - is_type("string", Math::BigFloat->new('9223372036854780000')) is false 306s ok 63 - data is not tampered with while it is tested (not dualvar) 306s ok 64 - is_type("integer", Math::BigFloat->new('18446744073709600000')) is true 306s ok 65 - is_type("number", Math::BigFloat->new('18446744073709600000')) is true 306s ok 66 - get_type(Math::BigFloat->new('18446744073709600000')) = integer 306s ok 67 - is_type("array", Math::BigFloat->new('18446744073709600000')) is false 306s ok 68 - is_type("boolean", Math::BigFloat->new('18446744073709600000')) is false 306s ok 69 - is_type("null", Math::BigFloat->new('18446744073709600000')) is false 306s ok 70 - is_type("object", Math::BigFloat->new('18446744073709600000')) is false 306s ok 71 - is_type("string", Math::BigFloat->new('18446744073709600000')) is false 306s ok 72 - data is not tampered with while it is tested (not dualvar) 306s ok 73 - is_type("integer", Math::BigFloat->new('36893488147419100000')) is true 306s ok 74 - is_type("number", Math::BigFloat->new('36893488147419100000')) is true 306s ok 75 - get_type(Math::BigFloat->new('36893488147419100000')) = integer 306s ok 76 - is_type("array", Math::BigFloat->new('36893488147419100000')) is false 306s ok 77 - is_type("boolean", Math::BigFloat->new('36893488147419100000')) is false 306s ok 78 - is_type("null", Math::BigFloat->new('36893488147419100000')) is false 306s ok 79 - is_type("object", Math::BigFloat->new('36893488147419100000')) is false 306s ok 80 - is_type("string", Math::BigFloat->new('36893488147419100000')) is false 306s ok 81 - data is not tampered with while it is tested (not dualvar) 306s ok 82 - is_type("integer", 1000000000000000) is true 306s ok 83 - is_type("number", 1000000000000000) is true 306s ok 84 - get_type(1000000000000000) = integer 306s ok 85 - is_type("array", 1000000000000000) is false 306s ok 86 - is_type("boolean", 1000000000000000) is false 306s ok 87 - is_type("null", 1000000000000000) is false 306s ok 88 - is_type("object", 1000000000000000) is false 306s ok 89 - is_type("string", 1000000000000000) is false 306s ok 90 - data is not tampered with while it is tested (not dualvar) 306s ok 91 - is_type("integer", Math::BigFloat->new('20')) is true 306s ok 92 - is_type("number", Math::BigFloat->new('20')) is true 306s ok 93 - get_type(Math::BigFloat->new('20')) = integer 306s ok 94 - is_type("array", Math::BigFloat->new('20')) is false 306s ok 95 - is_type("boolean", Math::BigFloat->new('20')) is false 306s ok 96 - is_type("null", Math::BigFloat->new('20')) is false 306s ok 97 - is_type("object", Math::BigFloat->new('20')) is false 306s ok 98 - is_type("string", Math::BigFloat->new('20')) is false 306s ok 99 - data is not tampered with while it is tested (not dualvar) 306s ok 100 - is_type("integer", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 306s ok 101 - is_type("number", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is true 306s ok 102 - get_type(Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) = integer 306s ok 103 - is_type("array", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 104 - is_type("boolean", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 105 - is_type("null", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 106 - is_type("object", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 107 - is_type("string", Math::BigFloat->new('10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')) is false 306s ok 108 - data is not tampered with while it is tested (not dualvar) 306s ok 109 - is_type("integer", Math::BigFloat->new('12345123451234512345')) is true 306s ok 110 - is_type("number", Math::BigFloat->new('12345123451234512345')) is true 306s ok 111 - get_type(Math::BigFloat->new('12345123451234512345')) = integer 306s ok 112 - is_type("array", Math::BigFloat->new('12345123451234512345')) is false 306s ok 113 - is_type("boolean", Math::BigFloat->new('12345123451234512345')) is false 306s ok 114 - is_type("null", Math::BigFloat->new('12345123451234512345')) is false 306s ok 115 - is_type("object", Math::BigFloat->new('12345123451234512345')) is false 306s ok 116 - is_type("string", Math::BigFloat->new('12345123451234512345')) is false 306s ok 117 - data is not tampered with while it is tested (not dualvar) 306s 1..117 306s ok 10 - JSON-encoded data, type: integer 306s # Subtest: JSON-encoded data, type: null 306s ok 1 - is_type("null", null) is true 306s ok 2 - get_type(null) = null 306s ok 3 - is_type("array", null) is false 306s ok 4 - is_type("boolean", null) is false 306s ok 5 - is_type("integer", null) is false 306s ok 6 - is_type("number", null) is false 306s ok 7 - is_type("object", null) is false 306s ok 8 - is_type("string", null) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s 1..9 306s ok 11 - JSON-encoded data, type: null 306s # Subtest: JSON-encoded data, type: number 306s ok 1 - is_type("number", Math::BigFloat->new('3.1')) is true 306s ok 2 - get_type(Math::BigFloat->new('3.1')) = number 306s ok 3 - is_type("array", Math::BigFloat->new('3.1')) is false 306s ok 4 - is_type("boolean", Math::BigFloat->new('3.1')) is false 306s ok 5 - is_type("integer", Math::BigFloat->new('3.1')) is false 306s ok 6 - is_type("null", Math::BigFloat->new('3.1')) is false 306s ok 7 - is_type("object", Math::BigFloat->new('3.1')) is false 306s ok 8 - is_type("string", Math::BigFloat->new('3.1')) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("number", Math::BigFloat->new('12345678901.2')) is true 306s ok 11 - get_type(Math::BigFloat->new('12345678901.2')) = number 306s ok 12 - is_type("array", Math::BigFloat->new('12345678901.2')) is false 306s ok 13 - is_type("boolean", Math::BigFloat->new('12345678901.2')) is false 306s ok 14 - is_type("integer", Math::BigFloat->new('12345678901.2')) is false 306s ok 15 - is_type("null", Math::BigFloat->new('12345678901.2')) is false 306s ok 16 - is_type("object", Math::BigFloat->new('12345678901.2')) is false 306s ok 17 - is_type("string", Math::BigFloat->new('12345678901.2')) is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s ok 19 - is_type("number", Math::BigFloat->new('0.123')) is true 306s ok 20 - get_type(Math::BigFloat->new('0.123')) = number 306s ok 21 - is_type("array", Math::BigFloat->new('0.123')) is false 306s ok 22 - is_type("boolean", Math::BigFloat->new('0.123')) is false 306s ok 23 - is_type("integer", Math::BigFloat->new('0.123')) is false 306s ok 24 - is_type("null", Math::BigFloat->new('0.123')) is false 306s ok 25 - is_type("object", Math::BigFloat->new('0.123')) is false 306s ok 26 - is_type("string", Math::BigFloat->new('0.123')) is false 306s ok 27 - data is not tampered with while it is tested (not dualvar) 306s ok 28 - is_type("number", Math::BigFloat->new('12345123451234512345.2')) is true 306s ok 29 - get_type(Math::BigFloat->new('12345123451234512345.2')) = number 306s ok 30 - is_type("array", Math::BigFloat->new('12345123451234512345.2')) is false 306s ok 31 - is_type("boolean", Math::BigFloat->new('12345123451234512345.2')) is false 306s ok 32 - is_type("integer", Math::BigFloat->new('12345123451234512345.2')) is false 306s ok 33 - is_type("null", Math::BigFloat->new('12345123451234512345.2')) is false 306s ok 34 - is_type("object", Math::BigFloat->new('12345123451234512345.2')) is false 306s ok 35 - is_type("string", Math::BigFloat->new('12345123451234512345.2')) is false 306s ok 36 - data is not tampered with while it is tested (not dualvar) 306s 1..36 306s ok 12 - JSON-encoded data, type: number 306s # Subtest: JSON-encoded data, type: object 306s ok 1 - is_type("object", {}) is true 306s ok 2 - get_type({}) = object 306s ok 3 - is_type("array", {}) is false 306s ok 4 - is_type("boolean", {}) is false 306s ok 5 - is_type("integer", {}) is false 306s ok 6 - is_type("null", {}) is false 306s ok 7 - is_type("number", {}) is false 306s ok 8 - is_type("string", {}) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("object", {"a" : 1}) is true 306s ok 11 - get_type({"a" : 1}) = object 306s ok 12 - is_type("array", {"a" : 1}) is false 306s ok 13 - is_type("boolean", {"a" : 1}) is false 306s ok 14 - is_type("integer", {"a" : 1}) is false 306s ok 15 - is_type("null", {"a" : 1}) is false 306s ok 16 - is_type("number", {"a" : 1}) is false 306s ok 17 - is_type("string", {"a" : 1}) is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s 1..18 306s ok 13 - JSON-encoded data, type: object 306s # Subtest: JSON-encoded data, type: string 306s ok 1 - is_type("string", "") is true 306s ok 2 - get_type("") = string 306s ok 3 - is_type("array", "") is false 306s ok 4 - is_type("boolean", "") is false 306s ok 5 - is_type("integer", "") is false 306s ok 6 - is_type("null", "") is false 306s ok 7 - is_type("number", "") is false 306s ok 8 - is_type("object", "") is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("string", "0") is true 306s ok 11 - get_type("0") = string 306s ok 12 - is_type("array", "0") is false 306s ok 13 - is_type("boolean", "0") is false 306s ok 14 - is_type("integer", "0") is false 306s ok 15 - is_type("null", "0") is false 306s ok 16 - is_type("number", "0") is false 306s ok 17 - is_type("object", "0") is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s ok 19 - is_type("string", "-1") is true 306s ok 20 - get_type("-1") = string 306s ok 21 - is_type("array", "-1") is false 306s ok 22 - is_type("boolean", "-1") is false 306s ok 23 - is_type("integer", "-1") is false 306s ok 24 - is_type("null", "-1") is false 306s ok 25 - is_type("number", "-1") is false 306s ok 26 - is_type("object", "-1") is false 306s ok 27 - data is not tampered with while it is tested (not dualvar) 306s ok 28 - is_type("string", "2.0") is true 306s ok 29 - get_type("2.0") = string 306s ok 30 - is_type("array", "2.0") is false 306s ok 31 - is_type("boolean", "2.0") is false 306s ok 32 - is_type("integer", "2.0") is false 306s ok 33 - is_type("null", "2.0") is false 306s ok 34 - is_type("number", "2.0") is false 306s ok 35 - is_type("object", "2.0") is false 306s ok 36 - data is not tampered with while it is tested (not dualvar) 306s ok 37 - is_type("string", "3.1") is true 306s ok 38 - get_type("3.1") = string 306s ok 39 - is_type("array", "3.1") is false 306s ok 40 - is_type("boolean", "3.1") is false 306s ok 41 - is_type("integer", "3.1") is false 306s ok 42 - is_type("null", "3.1") is false 306s ok 43 - is_type("number", "3.1") is false 306s ok 44 - is_type("object", "3.1") is false 306s ok 45 - data is not tampered with while it is tested (not dualvar) 306s ok 46 - is_type("string", "école") is true 306s ok 47 - get_type("école") = string 306s ok 48 - is_type("array", "école") is false 306s ok 49 - is_type("boolean", "école") is false 306s ok 50 - is_type("integer", "école") is false 306s ok 51 - is_type("null", "école") is false 306s ok 52 - is_type("number", "école") is false 306s ok 53 - is_type("object", "école") is false 306s ok 54 - data is not tampered with while it is tested (not dualvar) 306s ok 55 - is_type("string", "ಠ_ಠ") is true 306s ok 56 - get_type("ಠ_ಠ") = string 306s ok 57 - is_type("array", "ಠ_ಠ") is false 306s ok 58 - is_type("boolean", "ಠ_ಠ") is false 306s ok 59 - is_type("integer", "ಠ_ಠ") is false 306s ok 60 - is_type("null", "ಠ_ಠ") is false 306s ok 61 - is_type("number", "ಠ_ಠ") is false 306s ok 62 - is_type("object", "ಠ_ಠ") is false 306s ok 63 - data is not tampered with while it is tested (not dualvar) 306s 1..63 306s ok 14 - JSON-encoded data, type: string 306s # Subtest: integers and numbers in draft4 306s # Subtest: pre-inflated data 306s ok 1 - is_type("integer", 0) is true 306s ok 2 - is_type("number", 0) is true 306s ok 3 - get_type(0) = integer 306s ok 4 - is_type("null", 0) is false 306s ok 5 - is_type("boolean", 0) is false 306s ok 6 - is_type("object", 0) is false 306s ok 7 - is_type("array", 0) is false 306s ok 8 - is_type("string", 0) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("integer", -1) is true 306s ok 11 - is_type("number", -1) is true 306s ok 12 - get_type(-1) = integer 306s ok 13 - is_type("null", -1) is false 306s ok 14 - is_type("boolean", -1) is false 306s ok 15 - is_type("object", -1) is false 306s ok 16 - is_type("array", -1) is false 306s ok 17 - is_type("string", -1) is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s ok 19 - is_type("integer", 2) is true 306s ok 20 - is_type("number", 2) is true 306s ok 21 - get_type(2) = integer 306s ok 22 - is_type("null", 2) is false 306s ok 23 - is_type("boolean", 2) is false 306s ok 24 - is_type("object", 2) is false 306s ok 25 - is_type("array", 2) is false 306s ok 26 - is_type("string", 2) is false 306s ok 27 - data is not tampered with while it is tested (not dualvar) 306s ok 28 - is_type("integer", Math::BigInt->new('2')) is true 306s ok 29 - is_type("number", Math::BigInt->new('2')) is true 306s ok 30 - get_type(Math::BigInt->new('2')) = integer 306s ok 31 - is_type("null", Math::BigInt->new('2')) is false 306s ok 32 - is_type("boolean", Math::BigInt->new('2')) is false 306s ok 33 - is_type("object", Math::BigInt->new('2')) is false 306s ok 34 - is_type("array", Math::BigInt->new('2')) is false 306s ok 35 - is_type("string", Math::BigInt->new('2')) is false 306s ok 36 - data is not tampered with while it is tested (not dualvar) 306s ok 37 - is_type("integer", Math::BigInt->new('1')) is true 306s ok 38 - is_type("number", Math::BigInt->new('1')) is true 306s ok 39 - get_type(Math::BigInt->new('1')) = integer 306s ok 40 - is_type("null", Math::BigInt->new('1')) is false 306s ok 41 - is_type("boolean", Math::BigInt->new('1')) is false 306s ok 42 - is_type("object", Math::BigInt->new('1')) is false 306s ok 43 - is_type("array", Math::BigInt->new('1')) is false 306s ok 44 - is_type("string", Math::BigInt->new('1')) is false 306s ok 45 - data is not tampered with while it is tested (not dualvar) 306s ok 46 - is_type("number", 3.1) is true 306s ok 47 - get_type(3.1) = number 306s ok 48 - is_type("null", 3.1) is false 306s ok 49 - is_type("boolean", 3.1) is false 306s ok 50 - is_type("object", 3.1) is false 306s ok 51 - is_type("array", 3.1) is false 306s ok 52 - is_type("string", 3.1) is false 306s ok 53 - is_type("integer", 3.1) is false 306s ok 54 - data is not tampered with while it is tested (not dualvar) 306s ok 55 - is_type("number", 2.0) is true 306s ok 56 - get_type(2.0) = number 306s ok 57 - is_type("null", 2.0) is false 306s ok 58 - is_type("boolean", 2.0) is false 306s ok 59 - is_type("object", 2.0) is false 306s ok 60 - is_type("array", 2.0) is false 306s ok 61 - is_type("string", 2.0) is false 306s ok 62 - is_type("integer", 2.0) is false 306s ok 63 - data is not tampered with while it is tested (not dualvar) 306s ok 64 - is_type("number", 12345678901.2) is true 306s ok 65 - get_type(12345678901.2) = number 306s ok 66 - is_type("null", 12345678901.2) is false 306s ok 67 - is_type("boolean", 12345678901.2) is false 306s ok 68 - is_type("object", 12345678901.2) is false 306s ok 69 - is_type("array", 12345678901.2) is false 306s ok 70 - is_type("string", 12345678901.2) is false 306s ok 71 - is_type("integer", 12345678901.2) is false 306s ok 72 - data is not tampered with while it is tested (not dualvar) 306s ok 73 - is_type("number", Math::BigFloat->new('0.123')) is true 306s ok 74 - get_type(Math::BigFloat->new('0.123')) = number 306s ok 75 - is_type("null", Math::BigFloat->new('0.123')) is false 306s ok 76 - is_type("boolean", Math::BigFloat->new('0.123')) is false 306s ok 77 - is_type("object", Math::BigFloat->new('0.123')) is false 306s ok 78 - is_type("array", Math::BigFloat->new('0.123')) is false 306s ok 79 - is_type("string", Math::BigFloat->new('0.123')) is false 306s ok 80 - is_type("integer", Math::BigFloat->new('0.123')) is false 306s ok 81 - data is not tampered with while it is tested (not dualvar) 306s ok 82 - is_type("number", Math::BigFloat->new('2')) is true 306s ok 83 - get_type(Math::BigFloat->new('2')) = number 306s ok 84 - is_type("null", Math::BigFloat->new('2')) is false 306s ok 85 - is_type("boolean", Math::BigFloat->new('2')) is false 306s ok 86 - is_type("object", Math::BigFloat->new('2')) is false 306s ok 87 - is_type("array", Math::BigFloat->new('2')) is false 306s ok 88 - is_type("string", Math::BigFloat->new('2')) is false 306s ok 89 - is_type("integer", Math::BigFloat->new('2')) is false 306s ok 90 - data is not tampered with while it is tested (not dualvar) 306s 1..90 306s ok 1 - pre-inflated data 306s # Subtest: data from encoded json 306s ok 1 - is_type("integer", 0) is true 306s ok 2 - is_type("number", 0) is true 306s ok 3 - get_type(0) = integer 306s ok 4 - is_type("null", 0) is false 306s ok 5 - is_type("boolean", 0) is false 306s ok 6 - is_type("object", 0) is false 306s ok 7 - is_type("array", 0) is false 306s ok 8 - is_type("string", 0) is false 306s ok 9 - data is not tampered with while it is tested (not dualvar) 306s ok 10 - is_type("integer", -1) is true 306s ok 11 - is_type("number", -1) is true 306s ok 12 - get_type(-1) = integer 306s ok 13 - is_type("null", -1) is false 306s ok 14 - is_type("boolean", -1) is false 306s ok 15 - is_type("object", -1) is false 306s ok 16 - is_type("array", -1) is false 306s ok 17 - is_type("string", -1) is false 306s ok 18 - data is not tampered with while it is tested (not dualvar) 306s ok 19 - is_type("integer", 1000000000000000) is true 306s ok 20 - is_type("number", 1000000000000000) is true 306s ok 21 - get_type(1000000000000000) = integer 306s ok 22 - is_type("null", 1000000000000000) is false 306s ok 23 - is_type("boolean", 1000000000000000) is false 306s ok 24 - is_type("object", 1000000000000000) is false 306s ok 25 - is_type("array", 1000000000000000) is false 306s ok 26 - is_type("string", 1000000000000000) is false 306s ok 27 - data is not tampered with while it is tested (not dualvar) 306s ok 28 - is_type("number", Math::BigFloat->new('3.1')) is true 306s ok 29 - get_type(Math::BigFloat->new('3.1')) = number 306s ok 30 - is_type("null", Math::BigFloat->new('3.1')) is false 306s ok 31 - is_type("boolean", Math::BigFloat->new('3.1')) is false 306s ok 32 - is_type("object", Math::BigFloat->new('3.1')) is false 306s ok 33 - is_type("array", Math::BigFloat->new('3.1')) is false 306s ok 34 - is_type("string", Math::BigFloat->new('3.1')) is false 306s ok 35 - is_type("integer", Math::BigFloat->new('3.1')) is false 306s ok 36 - data is not tampered with while it is tested (not dualvar) 306s ok 37 - is_type("number", Math::BigFloat->new('12345678901.2')) is true 306s ok 38 - get_type(Math::BigFloat->new('12345678901.2')) = number 306s ok 39 - is_type("null", Math::BigFloat->new('12345678901.2')) is false 306s ok 40 - is_type("boolean", Math::BigFloat->new('12345678901.2')) is false 306s ok 41 - is_type("object", Math::BigFloat->new('12345678901.2')) is false 306s ok 42 - is_type("array", Math::BigFloat->new('12345678901.2')) is false 306s ok 43 - is_type("string", Math::BigFloat->new('12345678901.2')) is false 306s ok 44 - is_type("integer", Math::BigFloat->new('12345678901.2')) is false 306s ok 45 - data is not tampered with while it is tested (not dualvar) 306s ok 46 - is_type("number", Math::BigFloat->new('0.123')) is true 306s ok 47 - get_type(Math::BigFloat->new('0.123')) = number 306s ok 48 - is_type("null", Math::BigFloat->new('0.123')) is false 306s ok 49 - is_type("boolean", Math::BigFloat->new('0.123')) is false 306s ok 50 - is_type("object", Math::BigFloat->new('0.123')) is false 306s ok 51 - is_type("array", Math::BigFloat->new('0.123')) is false 306s ok 52 - is_type("string", Math::BigFloat->new('0.123')) is false 306s ok 53 - is_type("integer", Math::BigFloat->new('0.123')) is false 306s ok 54 - data is not tampered with while it is tested (not dualvar) 306s ok 55 - is_type("number", Math::BigFloat->new('2')) is true 306s ok 56 - get_type(Math::BigFloat->new('2')) = number 306s ok 57 - is_type("null", Math::BigFloat->new('2')) is false 306s ok 58 - is_type("boolean", Math::BigFloat->new('2')) is false 306s ok 59 - is_type("object", Math::BigFloat->new('2')) is false 306s ok 60 - is_type("array", Math::BigFloat->new('2')) is false 306s ok 61 - is_type("string", Math::BigFloat->new('2')) is false 306s ok 62 - is_type("integer", Math::BigFloat->new('2')) is false 306s ok 63 - data is not tampered with while it is tested (not dualvar) 306s 1..63 306s ok 2 - data from encoded json 306s 1..2 306s ok 15 - integers and numbers in draft4 306s ok 16 - non-existent type does not result in exception 306s # Subtest: ambiguous types 306s # Subtest: integers 306s ok 1 - dualvar integers with different values are ambiguous 306s ok 2 - dualvar integers with different values are not integers 306s ok 3 - dualvar integers with different values are not numbers 306s ok 4 - dualvar integers with different values are not strings 306s ok 5 # skip on perls < 5.35.9, reading the string form of an integer value sets the flag SVf_POK 306s ok 6 - integer that is later used as a string is still identified as a integer 306s ok 7 - integer that is later used as a string is still an integer 306s ok 8 - integer that is later used as a string is still a number 306s ok 9 - integer that is later used as a string is not a string 306s 1..9 306s ok 1 - integers 306s # Subtest: numbers 306s ok 1 - dualvar numbers are ambiguous in get_type 306s ok 2 - dualvar numbers are not integers 306s ok 3 - dualvar numbers are not numbers 306s ok 4 - dualvar numbers are not strings 306s ok 5 - number that is later used as a string is still identified as a number 306s ok 6 - number that is later used as a string is not an integer 306s ok 7 - number that is later used as a string is still a number 306s ok 8 - number that is later used as a string is not a string 306s 1..8 306s ok 2 - numbers 306s # Subtest: strings 306s ok 1 - dualvar strings are ambiguous in get_type 306s ok 2 - dualvar strings are not integers 306s ok 3 - dualvar strings are not numbers 306s ok 4 - dualvar strings are not strings 306s ok 5 - string that is later used as an integer is still identified as a string 306s ok 6 # skip on perls < 5.35.9, reading the string form of an integer value sets the flag SVf_POK 306s ok 7 - string that is later used as an integer is not an integer 306s ok 8 - string that is later used as an integer is not a number 306s ok 9 - string that is later used as an integer is still a string 306s ok 10 - string that is later used as a number is still identified as a string 306s ok 11 - string that is later used as a number is not an integer 306s ok 12 # skip on perls < 5.35.9, reading the string form of an integer value sets the flag SVf_POK 306s ok 13 - string that is later used as a number is not a number 306s ok 14 - string that is later used as a number is still a string 306s 1..14 306s ok 3 - strings 306s 1..3 306s ok 17 - ambiguous types 306s # Subtest: is_type and get_type for references 306s ok 1 - reference to SCALAR type is reported without exception 306s ok 2 - value is a reference to SCALAR 306s ok 3 - value is not a null 306s ok 4 - value is not a object 306s ok 5 - value is not a array 306s ok 6 - value is not a boolean 306s ok 7 - value is not a string 306s ok 8 - value is not a number 306s ok 9 - value is not a integer 306s ok 10 - reference to REF type is reported without exception 306s ok 11 - value is a reference to REF 306s ok 12 - value is not a null 306s ok 13 - value is not a object 306s ok 14 - value is not a array 306s ok 15 - value is not a boolean 306s ok 16 - value is not a string 306s ok 17 - value is not a number 306s ok 18 - value is not a integer 306s ok 19 - reference to CODE type is reported without exception 306s ok 20 - value is a reference to CODE 306s ok 21 - value is not a null 306s ok 22 - value is not a object 306s ok 23 - value is not a array 306s ok 24 - value is not a boolean 306s ok 25 - value is not a string 306s ok 26 - value is not a number 306s ok 27 - value is not a integer 306s ok 28 - reference to GLOB type is reported without exception 306s ok 29 - value is a reference to GLOB 306s ok 30 - value is not a null 306s ok 31 - value is not a object 306s ok 32 - value is not a array 306s ok 33 - value is not a boolean 306s ok 34 - value is not a string 306s ok 35 - value is not a number 306s ok 36 - value is not a integer 306s ok 37 - reference to LVALUE type is reported without exception 306s ok 38 - value is a reference to LVALUE 306s ok 39 - value is not a null 306s ok 40 - value is not a object 306s ok 41 - value is not a array 306s ok 42 - value is not a boolean 306s ok 43 - value is not a string 306s ok 44 - value is not a number 306s ok 45 - value is not a integer 306s ok 46 - reference to VSTRING type is reported without exception 306s ok 47 - value is a reference to VSTRING 306s ok 48 - value is not a null 306s ok 49 - value is not a object 306s ok 50 - value is not a array 306s ok 51 - value is not a boolean 306s ok 52 - value is not a string 306s ok 53 - value is not a number 306s ok 54 - value is not a integer 306s ok 55 - Regexp type is reported without exception 306s ok 56 - value is a Regexp 306s ok 57 - value is not a null 306s ok 58 - value is not a object 306s ok 59 - value is not a array 306s ok 60 - value is not a boolean 306s ok 61 - value is not a string 306s ok 62 - value is not a number 306s ok 63 - value is not a integer 306s ok 64 - IO::File type is reported without exception 306s ok 65 - value is a IO::File 306s ok 66 - value is not a null 306s ok 67 - value is not a object 306s ok 68 - value is not a array 306s ok 69 - value is not a boolean 306s ok 70 - value is not a string 306s ok 71 - value is not a number 306s ok 72 - value is not a integer 306s ok 73 - Foo type is reported without exception 306s ok 74 - value is a Foo 306s ok 75 - value is not a null 306s ok 76 - value is not a object 306s ok 77 - value is not a array 306s ok 78 - value is not a boolean 306s ok 79 - value is not a string 306s ok 80 - value is not a number 306s ok 81 - value is not a integer 306s ok 82 - 0 type is reported without exception 306s ok 83 - value is a 0 306s ok 84 - value is not a null 306s ok 85 - value is not a object 306s ok 86 - value is not a array 306s ok 87 - value is not a boolean 306s ok 88 - value is not a string 306s ok 89 - value is not a number 306s ok 90 - value is not a integer 306s 1..90 306s ok 18 - is_type and get_type for references 306s 1..18 306s ok 307s t/unsupported-keywords.t ................ 307s # 307s # draft6 307s ok 1 - schema with "id" still validates in draft6 307s ok 2 - warned for "id" in draft6 307s # 307s # draft7 307s ok 3 - schema with "id" still validates in draft7 307s ok 4 - warned for "id" in draft7 307s ok 5 - schema with "definitions" validates in draft7 307s ok 6 - did not warn for "definitions" in draft7 307s ok 7 - schema with "dependencies" validates in draft7 307s ok 8 - did not warn for "dependencies" in draft7 307s # 307s # draft2019-09 307s ok 9 - schema with "id" still validates in draft2019-09 307s ok 10 - warned for "id" in draft2019-09 307s ok 11 - schema with "definitions" still validates in draft2019-09 307s ok 12 - warned for "definitions" in draft2019-09 307s ok 13 - schema with "dependencies" still validates in draft2019-09 307s ok 14 - warned for "dependencies" in draft2019-09 307s 1..14 307s ok 308s t/validate-schema.t ..................... 308s ok 1 - validate_schema on simple schema with no $schema keyword 308s ok 2 - validate_schema on schema with metaschema $schema keyword 308s ok 3 - validate_schema with custom metaschema 308s ok 4 - validate_schema with schema that validates against the metaschema, but fails in extra traverse checks 308s 1..4 308s ok 309s t/vocabularies.t ........................ 309s # Subtest: valid keywords 309s ok 1 - draft4, Applicator: calculated keyword list matches hardcoded table 309s ok 2 - draft4, Core: calculated keyword list matches hardcoded table 309s ok 3 - draft4, FormatAnnotation: calculated keyword list matches hardcoded table 309s ok 4 - draft4, MetaData: calculated keyword list matches hardcoded table 309s ok 5 - draft4, Validation: calculated keyword list matches hardcoded table 309s ok 6 - draft6, Applicator: calculated keyword list matches hardcoded table 309s ok 7 - draft6, Core: calculated keyword list matches hardcoded table 309s ok 8 - draft6, FormatAnnotation: calculated keyword list matches hardcoded table 309s ok 9 - draft6, MetaData: calculated keyword list matches hardcoded table 309s ok 10 - draft6, Validation: calculated keyword list matches hardcoded table 309s ok 11 - draft7, Applicator: calculated keyword list matches hardcoded table 309s ok 12 - draft7, Content: calculated keyword list matches hardcoded table 309s ok 13 - draft7, Core: calculated keyword list matches hardcoded table 309s ok 14 - draft7, FormatAnnotation: calculated keyword list matches hardcoded table 309s ok 15 - draft7, MetaData: calculated keyword list matches hardcoded table 309s ok 16 - draft7, Validation: calculated keyword list matches hardcoded table 309s ok 17 - draft2019-09, Applicator: calculated keyword list matches hardcoded table 309s ok 18 - draft2019-09, Content: calculated keyword list matches hardcoded table 309s ok 19 - draft2019-09, Core: calculated keyword list matches hardcoded table 309s ok 20 - draft2019-09, FormatAnnotation: calculated keyword list matches hardcoded table 309s ok 21 - draft2019-09, MetaData: calculated keyword list matches hardcoded table 309s ok 22 - draft2019-09, Validation: calculated keyword list matches hardcoded table 309s ok 23 - draft2020-12, Applicator: calculated keyword list matches hardcoded table 309s ok 24 - draft2020-12, Content: calculated keyword list matches hardcoded table 309s ok 25 - draft2020-12, Core: calculated keyword list matches hardcoded table 309s ok 26 - draft2020-12, FormatAnnotation: calculated keyword list matches hardcoded table 309s ok 27 - draft2020-12, MetaData: calculated keyword list matches hardcoded table 309s ok 28 - draft2020-12, Unevaluated: calculated keyword list matches hardcoded table 309s ok 29 - draft2020-12, Validation: calculated keyword list matches hardcoded table 309s 1..29 309s ok 1 - valid keywords 309s 1..1 309s ok 316s t/zzz-acceptance-draft2019-09-format.t .. 316s # 316s # AUTHOR_TESTING: 316s # AUTOMATED_TESTING: 1 316s # EXTENDED_TESTING: 316s # NO_TODO: 316s # TEST_DIR: 316s # NO_SHORT_CIRCUIT: 316s # 316s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2019-09/optional/format against draft2019-09... 316s # 316s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 316s # result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s # short-circuited result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s ok 1 - test passes: data is valid: false 316s 1..1 316s } 316s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 316s # result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s # short-circuited result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s ok 1 - test passes: data is valid: false 316s 1..1 316s } 316s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 316s # result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s # short-circuited result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s ok 1 - test passes: data is valid: false 316s 1..1 316s } 316s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 316s # result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s # short-circuited result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s ok 1 - test passes: data is valid: false 316s 1..1 316s } 316s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 316s # result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s # short-circuited result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s ok 1 - test passes: data is valid: false 316s 1..1 316s } 316s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 316s # result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s # short-circuited result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s ok 1 - test passes: data is valid: false 316s 1..1 316s } 316s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 316s # result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s # short-circuited result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s ok 1 - test passes: data is valid: false 316s 1..1 316s } 316s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 316s # result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s # short-circuited result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s ok 1 - test passes: data is valid: false 316s 1..1 316s } 316s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 316s # result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s # short-circuited result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s ok 1 - test passes: data is valid: false 316s 1..1 316s } 316s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 316s # result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s # short-circuited result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s ok 1 - test passes: data is valid: false 316s 1..1 316s } 316s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 316s # result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s # short-circuited result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s ok 1 - test passes: data is valid: false 316s 1..1 316s } 316s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 316s # result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s # short-circuited result: { 316s # "errors": [ 316s # { 316s # "error": "not a valid date-time string", 316s # "instanceLocation": "", 316s # "keywordLocation": "/format" 316s # } 316s # ], 316s # "valid": false 316s # } 316s ok 1 - test passes: data is valid: false 316s 1..1 316s } 316s # 316s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 316s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 316s # result: { 316s # "valid": true 316s # } 316s # short-circuited result: { 316s # "valid": true 316s # } 316s ok 1 - test passes: data is valid: true 316s 1..1 316s } 317s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 32 - date.json: "validation of date strings" - "a valid date string" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 64 - date.json: "validation of date strings" - "invalid month" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid date string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s # 317s ok 73 - duration.json: "validation of duration strings" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 74 - duration.json: "validation of duration strings" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 75 - duration.json: "validation of duration strings" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 76 - duration.json: "validation of duration strings" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 77 - duration.json: "validation of duration strings" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 78 - duration.json: "validation of duration strings" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 79 - duration.json: "validation of duration strings" - "a valid duration string" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 80 - duration.json: "validation of duration strings" - "an invalid duration string" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 81 - duration.json: "validation of duration strings" - "must start with P" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 82 - duration.json: "validation of duration strings" - "no elements present" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 83 - duration.json: "validation of duration strings" - "no time elements present" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 84 - duration.json: "validation of duration strings" - "no date or time elements present" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 85 - duration.json: "validation of duration strings" - "elements out of order" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 86 - duration.json: "validation of duration strings" - "missing time separator" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 87 - duration.json: "validation of duration strings" - "time element in the date position" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 88 - duration.json: "validation of duration strings" - "four years duration" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 89 - duration.json: "validation of duration strings" - "zero time, in seconds" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 90 - duration.json: "validation of duration strings" - "zero time, in days" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 91 - duration.json: "validation of duration strings" - "one month duration" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 92 - duration.json: "validation of duration strings" - "one minute duration" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 93 - duration.json: "validation of duration strings" - "one and a half days, in hours" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 94 - duration.json: "validation of duration strings" - "one and a half days, in days and hours" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 95 - duration.json: "validation of duration strings" - "two weeks" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 96 - duration.json: "validation of duration strings" - "weeks cannot be combined with other units" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 97 - duration.json: "validation of duration strings" - "invalid non-ASCII '২' (a Bengali 2)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 98 - duration.json: "validation of duration strings" - "element without unit" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid duration string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s # 317s ok 99 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 100 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 101 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 102 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 103 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 104 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 105 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 106 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid email string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid email string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 107 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 108 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 109 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 110 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid email string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid email string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 111 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid email string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid email string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 112 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 113 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid email string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid email string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s # 317s ok 114 - hostname.json: "validation of host names" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 115 - hostname.json: "validation of host names" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 116 - hostname.json: "validation of host names" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 117 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 118 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 119 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 120 - hostname.json: "validation of host names" - "a valid host name" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 121 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 122 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 123 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 124 - hostname.json: "validation of host names" - "a host name with a component too long" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 125 - hostname.json: "validation of host names" - "starts with hyphen" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 126 - hostname.json: "validation of host names" - "ends with hyphen" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 127 - hostname.json: "validation of host names" - "starts with underscore" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 128 - hostname.json: "validation of host names" - "ends with underscore" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 129 - hostname.json: "validation of host names" - "contains underscore" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 130 - hostname.json: "validation of host names" - "maximum label length" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 131 - hostname.json: "validation of host names" - "exceeds maximum label length" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 132 - hostname.json: "validation of host names" - "single label" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 133 - hostname.json: "validation of host names" - "single label with hyphen" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 134 - hostname.json: "validation of host names" - "single label with digits" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 135 - hostname.json: "validation of host names" - "single label starting with digit" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 136 - hostname.json: "validation of host names" - "single label ending with digit" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 137 - hostname.json: "validation of host names" - "empty string" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 138 - hostname.json: "validation of host names" - "single dot" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s # 317s ok 139 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 140 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 141 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 142 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 143 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 144 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 145 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 146 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-email string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-email string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 147 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 148 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-email string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-email string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s # 317s ok 149 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 150 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 151 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 152 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 153 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 154 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s 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" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s 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" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s 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" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "실〮례.테스트" 317s # result: 1 317s 1..1 317s } 317s 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" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s ok 159 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s ok 160 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 161 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "xn--X" 317s # result: 1 317s 1..1 317s } 317s 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" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "XN--aa---o47jg78q" 317s # result: 1 317s 1..1 317s } 317s ok 163 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s ok 164 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s 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" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s ok 166 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s ok 167 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s ok 168 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s 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" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s 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" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s 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" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "ـߺ" 317s # result: 1 317s 1..1 317s } 317s 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" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "〱〲〳〴〵〮〯〻" 317s # result: 1 317s 1..1 317s } 317s ok 173 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "a·l" 317s # result: 1 317s 1..1 317s } 317s ok 174 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "·l" 317s # result: 1 317s 1..1 317s } 317s ok 175 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "l·a" 317s # result: 1 317s 1..1 317s } 317s ok 176 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "l·" 317s # result: 1 317s 1..1 317s } 317s ok 177 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 178 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "α͵S" 317s # result: 1 317s 1..1 317s } 317s ok 179 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "α͵" 317s # result: 1 317s 1..1 317s } 317s ok 180 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 181 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s ok 182 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "׳ב" 317s # result: 1 317s 1..1 317s } 317s ok 183 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 184 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s ok 185 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "״ב" 317s # result: 1 317s 1..1 317s } 317s ok 186 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s 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" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "def・abc" 317s # result: 1 317s 1..1 317s } 317s ok 188 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "idn-hostname" 317s # } 317s # data: "・" 317s # result: 1 317s 1..1 317s } 317s ok 189 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 190 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 191 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s 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" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s 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" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s 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" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 195 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s ok 196 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s ok 197 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 198 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s 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" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 200 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 201 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 202 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 203 - idn-hostname.json: "validation of internationalized host names" - "single label starting with digit" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 204 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 205 - idn-hostname.json: "validation of internationalized host names" - "empty string" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false # 317s 1..1 317s } 317s ok 206 - idn-hostname.json: "validation of separators in internationalized host names" - "single dot" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 207 - idn-hostname.json: "validation of separators in internationalized host names" - "single ideographic full stop" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 208 - idn-hostname.json: "validation of separators in internationalized host names" - "single fullwidth full stop" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 209 - idn-hostname.json: "validation of separators in internationalized host names" - "single halfwidth ideographic full stop" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid idn-hostname string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 210 - idn-hostname.json: "validation of separators in internationalized host names" - "dot as label separator" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 211 - idn-hostname.json: "validation of separators in internationalized host names" - "ideographic full stop as label separator" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 212 - idn-hostname.json: "validation of separators in internationalized host names" - "fullwidth full stop as label separator" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 213 - idn-hostname.json: "validation of separators in internationalized host names" - "halfwidth ideographic full stop as label separator" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s # 317s ok 214 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 215 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 216 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 217 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 218 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 219 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 220 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 221 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 222 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 223 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 224 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 225 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 226 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 227 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 228 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 229 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv4 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s # 317s ok 230 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 231 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 232 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 233 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 234 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 235 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 236 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 237 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 238 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 239 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 240 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 241 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 242 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 243 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 244 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 245 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 246 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 247 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 248 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 249 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 250 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 251 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 252 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 253 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 254 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 255 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 256 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 257 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 258 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 259 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 260 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 261 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 262 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 263 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 264 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 265 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 266 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 267 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 268 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 269 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid ipv6 string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s # 317s ok 270 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 271 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 272 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 273 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 274 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 275 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 276 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 277 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 278 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 279 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "iri-reference" 317s # } 317s # data: "\\\\WINDOWS\\filëßåré" 317s # result: 1 317s 1..1 317s } 317s ok 280 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 281 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 282 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "iri-reference" 317s # } 317s # data: "#ƒräg\\mênt" 317s # result: 1 317s 1..1 317s } 317s # 317s ok 283 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 284 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 285 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 286 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 287 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 288 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 289 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 290 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 291 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 292 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 293 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 294 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "iri" 317s # } 317s # data: "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334" 317s # result: 1 317s 1..1 317s } 317s ok 295 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid iri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid iri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 296 - iri.json: "validation of IRIs" - "an invalid IRI" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid iri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid iri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 297 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid iri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid iri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s # 317s ok 298 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 299 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 300 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 301 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 302 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 303 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 304 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 305 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 308 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 309 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 310 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 311 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 312 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 313 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 314 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 315 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 316 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 317 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 318 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 319 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 320 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 321 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 322 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 323 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 324 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 325 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 326 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 327 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 328 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 329 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 330 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 331 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 332 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 333 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 334 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 335 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s # 317s ok 336 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 337 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 338 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 339 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 340 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 341 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 342 - regex.json: "validation of regular expressions" - "a valid regular expression" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 343 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid regex string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid regex string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s # 317s ok 344 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 345 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 346 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 347 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 348 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 349 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 350 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 351 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 352 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 353 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 354 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 355 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 356 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 357 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 358 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 359 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 360 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid relative-json-pointer string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 361 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s # 317s ok 362 - time.json: "validation of time strings" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 363 - time.json: "validation of time strings" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 364 - time.json: "validation of time strings" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 365 - time.json: "validation of time strings" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 366 - time.json: "validation of time strings" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 367 - time.json: "validation of time strings" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 368 - time.json: "validation of time strings" - "a valid time string" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 369 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 370 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 371 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 372 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 373 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 374 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 375 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 376 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 377 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 378 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 379 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 380 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 381 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 382 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 383 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 384 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 385 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 386 - time.json: "validation of time strings" - "a valid time string with second fraction" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 387 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 388 - time.json: "validation of time strings" - "a valid time string with plus offset" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 389 - time.json: "validation of time strings" - "a valid time string with minus offset" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 390 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 391 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 392 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 393 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 394 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 395 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 396 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 397 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 398 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 399 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 400 - time.json: "validation of time strings" - "an invalid offset indicator" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 401 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 402 - time.json: "validation of time strings" - "no time offset" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 403 - time.json: "validation of time strings" - "no time offset with second fraction" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 404 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 405 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 406 - time.json: "validation of time strings" - "contains letters" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid time string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s # 317s ok 407 - unknown.json: "unknown format" - "unknown formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 408 - unknown.json: "unknown format" - "unknown formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 409 - unknown.json: "unknown format" - "unknown formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 410 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 411 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 412 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 413 - unknown.json: "unknown format" - "unknown formats ignore strings" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s # 317s ok 414 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 415 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 416 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 417 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 418 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 419 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 420 - uri-reference.json: "validation of URI References" - "a valid URI" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 421 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 422 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 423 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri-reference string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri-reference string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 424 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 425 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 426 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri-reference string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri-reference string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s # 317s ok 427 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 428 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 429 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 430 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 431 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 432 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 433 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 434 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "uri-template" 317s # } 317s # data: "http://example.com/dictionary/{term:1}/{term" 317s # result: 1 317s 1..1 317s } 317s ok 435 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s ok 436 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true # 317s 1..1 317s } 317s # 317s ok 437 - uri.json: "validation of URIs" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 438 - uri.json: "validation of URIs" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 439 - uri.json: "validation of URIs" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 440 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 441 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 442 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 443 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 444 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 445 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 446 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 447 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 448 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 449 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 450 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 451 - uri.json: "validation of URIs" - "a valid URL " { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 452 - uri.json: "validation of URIs" - "a valid mailto URI" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 453 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 454 - uri.json: "validation of URIs" - "a valid tel URI" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 455 - uri.json: "validation of URIs" - "a valid URN" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 456 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 457 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 458 - uri.json: "validation of URIs" - "an invalid URI" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 459 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 460 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 461 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uri string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 462 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s not ok 1 - evaluation result is incorrect # 317s # Failed test (with amnesty) 'evaluation result is incorrect' 317s # at t/zzz-acceptance-draft2019-09-format.t line 70. 317s # expected false; got true 317s # schema: { 317s # "$schema": "https://json-schema.org/draft/2019-09/schema", 317s # "format": "uri" 317s # } 317s # data: "bar,baz:foo" 317s # result: 1 317s 1..1 317s } 317s # 317s ok 463 - uuid.json: "uuid format" - "all string formats ignore integers" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 464 - uuid.json: "uuid format" - "all string formats ignore floats" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 465 - uuid.json: "uuid format" - "all string formats ignore objects" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 466 - uuid.json: "uuid format" - "all string formats ignore arrays" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 467 - uuid.json: "uuid format" - "all string formats ignore booleans" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 468 - uuid.json: "uuid format" - "all string formats ignore nulls" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 469 - uuid.json: "uuid format" - "all upper-case" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 470 - uuid.json: "uuid format" - "all lower-case" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 471 - uuid.json: "uuid format" - "mixed case" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 472 - uuid.json: "uuid format" - "all zeroes is valid" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 473 - uuid.json: "uuid format" - "wrong length" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 474 - uuid.json: "uuid format" - "missing section" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 475 - uuid.json: "uuid format" - "bad characters (not hex)" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 476 - uuid.json: "uuid format" - "no dashes" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 477 - uuid.json: "uuid format" - "too few dashes" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 478 - uuid.json: "uuid format" - "too many dashes" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 479 - uuid.json: "uuid format" - "dashes in the wrong spot" { 317s # result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s # short-circuited result: { 317s # "errors": [ 317s # { 317s # "error": "not a valid uuid string", 317s # "instanceLocation": "", 317s # "keywordLocation": "/format" 317s # } 317s # ], 317s # "valid": false 317s # } 317s ok 1 - test passes: data is valid: false 317s 1..1 317s } 317s ok 480 - uuid.json: "uuid format" - "valid version 4" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 481 - uuid.json: "uuid format" - "valid version 5" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 482 - uuid.json: "uuid format" - "hypothetical version 6" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s ok 483 - uuid.json: "uuid format" - "hypothetical version 15" { 317s # result: { 317s # "valid": true 317s # } 317s # short-circuited result: { 317s # "valid": true 317s # } 317s ok 1 - test passes: data is valid: true 317s 1..1 317s } 317s # 317s # generated with: Test::JSON::Schema::Acceptance 1.029 317s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 317s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 317s # specification version: draft2019-09 317s # using custom test directory: /optional/format 317s # optional tests included: yes 317s # 317s # filename pass todo-fail fail 317s # --------------------------------------------------------------- 317s # date-time.json 25 0 0 317s # date.json 47 0 0 317s # duration.json 26 0 0 317s # email.json 15 0 0 317s # hostname.json 25 0 0 317s # idn-email.json 10 0 0 317s # idn-hostname.json 50 15 0 317s # ipv4.json 16 0 0 317s # ipv6.json 40 0 0 317s # iri-reference.json 11 2 0 317s # iri.json 14 1 0 317s # json-pointer.json 38 0 0 317s # regex.json 8 0 0 317s # relative-json-pointer.json 18 0 0 317s # time.json 45 0 0 317s # unknown.json 7 0 0 317s # uri-reference.json 13 0 0 317s # uri-template.json 9 1 0 317s # uri.json 25 1 0 317s # uuid.json 21 0 0 317s # --------------------------------------------------------------- 317s # TOTAL 463 20 0 317s # 317s # Congratulations, all non-optional tests are passing! 317s # 317s ok 484 - no leaks in the main evaluator object 317s ok 485 - no leaks in the short-circuiting evaluator object 317s 1..485 317s ok 338s t/zzz-acceptance-draft2019-09.t ......... 338s # 338s # AUTHOR_TESTING: 338s # AUTOMATED_TESTING: 1 338s # EXTENDED_TESTING: 338s # NO_TODO: 338s # TEST_DIR: 338s # NO_SHORT_CIRCUIT: 338s # 338s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 338s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2019-09 against draft2019-09... 338s # 338s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/3", 338s # "keywordLocation": "/additionalItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/3", 338s # "keywordLocation": "/additionalItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/items/type" 338s # }, 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/items/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/items/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/3", 338s # "keywordLocation": "/additionalItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/3", 338s # "keywordLocation": "/additionalItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not boolean", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/additionalItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not boolean", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/additionalItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/additionalItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/additionalItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/additionalItems" 338s # }, 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/additionalItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/additionalItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/quux", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/quux", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/élmény", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/élmény", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not boolean", 338s # "instanceLocation": "/quux", 338s # "keywordLocation": "/additionalProperties/type" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not boolean", 338s # "instanceLocation": "/quux", 338s # "keywordLocation": "/additionalProperties/type" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not boolean", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/additionalProperties/type" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not boolean", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/additionalProperties/type" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not boolean", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/additionalProperties/type" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not boolean", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/additionalProperties/type" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 37 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against both keywords" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 38 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against propertyNames, but not additionalProperties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/pear", 338s # "keywordLocation": "/additionalProperties/type" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/pear", 338s # "keywordLocation": "/additionalProperties/type" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 39 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties doesn't consider dependentSchemas" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 40 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 41 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar even when foo2 is present" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 42 - allOf.json: "allOf" - "allOf" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 43 - allOf.json: "allOf" - "mismatch second" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/required" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/required" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 44 - allOf.json: "allOf" - "mismatch first" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/required" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/required" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 45 - allOf.json: "allOf" - "wrong type" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/0/properties/bar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/properties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/0/properties/bar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/properties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 46 - allOf.json: "allOf with base schema" - "valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 47 - allOf.json: "allOf with base schema" - "mismatch base schema" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 48 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/required" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/required" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 49 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: baz", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/required" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: baz", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/required" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 50 - allOf.json: "allOf with base schema" - "mismatch both" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/required" 338s # }, 338s # { 338s # "error": "object is missing property: baz", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/required" 338s # }, 338s # { 338s # "error": "subschemas 0, 1 are not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/required" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 51 - allOf.json: "allOf simple types" - "valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 52 - allOf.json: "allOf simple types" - "mismatch one" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than 30", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/maximum" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than 30", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/maximum" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 53 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 54 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 55 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0" 338s # }, 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1" 338s # }, 338s # { 338s # "error": "subschemas 0, 1 are not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 56 - allOf.json: "allOf with one empty schema" - "any data is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 57 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 58 - allOf.json: "allOf with the first empty schema" - "number is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 59 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/type" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/type" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 60 - allOf.json: "allOf with the last empty schema" - "number is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 61 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/type" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/type" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 62 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 63 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/allOf/0/type" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/allOf" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/allOf/0/type" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/allOf" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # }, 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # }, 338s # { 338s # "error": "value is not a multiple of 5", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # }, 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # }, 338s # { 338s # "error": "value is not a multiple of 5", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 67 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 68 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # }, 338s # { 338s # "error": "value is not a multiple of 5", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 69 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 70 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 5", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 5", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/multipleOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 71 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 72 - anchor.json: "Location-independent identifier" - "match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 73 - anchor.json: "Location-independent identifier" - "mismatch" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/A/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/A/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 74 - anchor.json: "Location-independent identifier with absolute URI" - "match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 75 - anchor.json: "Location-independent identifier with absolute URI" - "mismatch" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/bar#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/bar#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 76 - anchor.json: "Location-independent identifier with base URI change in subschema" - "match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 77 - anchor.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested.json#/$defs/B/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested.json#/$defs/B/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 78 - anchor.json: "same $anchor with different base uri" - "$ref resolves to /$defs/A/allOf/1" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 79 - anchor.json: "same $anchor with different base uri" - "$ref does not resolve to /$defs/A/allOf/0" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/child1#/allOf/1/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/child1#/allOf/1/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 80 - anyOf.json: "anyOf" - "first anyOf valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 81 - anyOf.json: "anyOf" - "second anyOf valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 82 - anyOf.json: "anyOf" - "both anyOf valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 83 - anyOf.json: "anyOf" - "neither anyOf valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "error": "value is less than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/minimum" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "error": "value is less than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/minimum" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 84 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 85 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 86 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "length is greater than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/maxLength" 338s # }, 338s # { 338s # "error": "length is less than 4", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/minLength" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "length is greater than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/maxLength" 338s # }, 338s # { 338s # "error": "length is less than 4", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/minLength" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 87 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 88 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 89 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0" 338s # }, 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0" 338s # }, 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 90 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 91 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 92 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 93 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/anyOf/0/properties/bar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/properties" 338s # }, 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/properties/foo/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/properties" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/anyOf/0/properties/bar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/properties" 338s # }, 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/properties/foo/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/properties" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 94 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 95 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 96 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 97 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/anyOf/0/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/anyOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/anyOf/0/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/anyOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 98 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 99 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 100 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 101 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 102 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 103 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 104 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 105 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 106 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 107 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 108 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 109 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 110 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 111 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 112 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 113 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 114 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 115 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 116 - const.json: "const validation" - "same value is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 117 - const.json: "const validation" - "another value is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 118 - const.json: "const validation" - "another type is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 119 - const.json: "const with object" - "same object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 120 - const.json: "const with object" - "same object with different property order is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 121 - const.json: "const with object" - "another object is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 122 - const.json: "const with object" - "another type is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 123 - const.json: "const with array" - "same array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 124 - const.json: "const with array" - "another array item is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/0': wrong type: integer vs object)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/0': wrong type: integer vs object)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 125 - const.json: "const with array" - "array with additional items is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 126 - const.json: "const with null" - "null is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 127 - const.json: "const with null" - "not null is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 128 - const.json: "const with false does not match 0" - "false is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 129 - const.json: "const with false does not match 0" - "integer zero is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 130 - const.json: "const with false does not match 0" - "float zero is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 131 - const.json: "const with true does not match 1" - "true is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 132 - const.json: "const with true does not match 1" - "integer one is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 133 - const.json: "const with true does not match 1" - "float one is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 134 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 135 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 136 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 137 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 138 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 139 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 140 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 141 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 142 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 143 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 144 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 145 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 146 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 147 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 148 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 149 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 150 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 151 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 152 - const.json: "const with 1 does not match true" - "true is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 153 - const.json: "const with 1 does not match true" - "integer one is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 154 - const.json: "const with 1 does not match true" - "float one is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 155 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 156 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 157 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 158 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 159 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 160 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 161 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 162 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 163 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 164 - const.json: "nul characters in strings" - "match string with nul" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 165 - const.json: "nul characters in strings" - "do not match string lacking nul" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/const" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 166 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 167 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 168 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 169 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than 5", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/contains/minimum" 338s # }, 338s # { 338s # "error": "value is less than 5", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/contains/minimum" 338s # }, 338s # { 338s # "error": "value is less than 5", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/contains/minimum" 338s # }, 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than 5", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/contains/minimum" 338s # }, 338s # { 338s # "error": "value is less than 5", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/contains/minimum" 338s # }, 338s # { 338s # "error": "value is less than 5", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/contains/minimum" 338s # }, 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 170 - contains.json: "contains keyword validation" - "empty array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 171 - contains.json: "contains keyword validation" - "not array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 172 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 173 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 174 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/contains/const" 338s # }, 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/contains/const" 338s # }, 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/contains/const" 338s # }, 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/3", 338s # "keywordLocation": "/contains/const" 338s # }, 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/contains/const" 338s # }, 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/contains/const" 338s # }, 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/contains/const" 338s # }, 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/3", 338s # "keywordLocation": "/contains/const" 338s # }, 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 175 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 176 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 177 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/contains" 338s # }, 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/contains" 338s # }, 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 178 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 179 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 180 - contains.json: "items + contains" - "matches items, does not match contains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/contains/multipleOf" 338s # }, 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/contains/multipleOf" 338s # }, 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/contains/multipleOf" 338s # }, 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/contains/multipleOf" 338s # }, 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/contains/multipleOf" 338s # }, 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/contains/multipleOf" 338s # }, 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 181 - contains.json: "items + contains" - "does not match items, matches contains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/multipleOf" 338s # }, 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/items/multipleOf" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/multipleOf" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 182 - contains.json: "items + contains" - "matches both items and contains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 183 - contains.json: "items + contains" - "matches neither items nor contains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/multipleOf" 338s # }, 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/items/multipleOf" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # }, 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/contains/multipleOf" 338s # }, 338s # { 338s # "error": "value is not a multiple of 3", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/contains/multipleOf" 338s # }, 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/multipleOf" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 184 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 185 - contains.json: "contains with false if subschema" - "empty array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 186 - contains.json: "contains with null instance elements" - "allows null items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 187 - content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 188 - content.json: "validation of string-encoded content based on media type" - "an invalid JSON document; validates true" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 189 - content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 190 - content.json: "validation of binary string-encoding" - "a valid base64 string" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 191 - content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character); validates true" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 192 - content.json: "validation of binary string-encoding" - "ignores non-strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 193 - content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 194 - content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document; validates true" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 195 - content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON; validates true" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 196 - content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 197 - content.json: "validation of binary-encoded media type documents with schema" - "a valid base64-encoded JSON document" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 198 - content.json: "validation of binary-encoded media type documents with schema" - "another valid base64-encoded JSON document" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 199 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64-encoded JSON document; validates true" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 200 - content.json: "validation of binary-encoded media type documents with schema" - "an empty object as a base64-encoded JSON document; validates true" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 201 - content.json: "validation of binary-encoded media type documents with schema" - "an empty array as a base64-encoded JSON document" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 202 - content.json: "validation of binary-encoded media type documents with schema" - "a validly-encoded invalid JSON document; validates true" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 203 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64 string that is valid JSON; validates true" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 204 - content.json: "validation of binary-encoded media type documents with schema" - "ignores non-strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 205 - default.json: "invalid type for default" - "valid when property is specified" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 206 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 207 - default.json: "invalid string value for default" - "valid when property is specified" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 208 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s 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)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s 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)" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than 3", 338s # "instanceLocation": "/alpha", 338s # "keywordLocation": "/properties/alpha/maximum" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than 3", 338s # "instanceLocation": "/alpha", 338s # "keywordLocation": "/properties/alpha/maximum" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s 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" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 212 - defs.json: "validate definition against metaschema" - "valid definition schema" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 213 - defs.json: "validate definition against metaschema" - "invalid definition schema" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/simpleTypes/enum", 338s # "error": "value does not match", 338s # "instanceLocation": "/$defs/foo/type", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/0/$ref/enum" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf/1/type", 338s # "error": "got integer, not array", 338s # "instanceLocation": "/$defs/foo/type", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/$defs/foo/type", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/$defs/foo", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 338s # "error": "subschema 2 is not valid", 338s # "instanceLocation": "/$defs/foo", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties/$defs/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/$defs", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/simpleTypes/enum", 338s # "error": "value does not match", 338s # "instanceLocation": "/$defs/foo/type", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/0/$ref/enum" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf/1/type", 338s # "error": "got integer, not array", 338s # "instanceLocation": "/$defs/foo/type", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/$defs/foo/type", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/$defs/foo", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 338s # "error": "subschema 2 is not valid", 338s # "instanceLocation": "/$defs/foo", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties/$defs/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/$defs", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 214 - dependentRequired.json: "single dependency" - "neither" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 215 - dependentRequired.json: "single dependency" - "nondependant" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 216 - dependentRequired.json: "single dependency" - "with dependency" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 217 - dependentRequired.json: "single dependency" - "missing dependency" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired/bar" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired/bar" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 218 - dependentRequired.json: "single dependency" - "ignores arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 219 - dependentRequired.json: "single dependency" - "ignores strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 220 - dependentRequired.json: "single dependency" - "ignores other non-objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 221 - dependentRequired.json: "empty dependents" - "empty object" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 222 - dependentRequired.json: "empty dependents" - "object with one property" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 223 - dependentRequired.json: "empty dependents" - "non-object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 224 - dependentRequired.json: "multiple dependents required" - "neither" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 225 - dependentRequired.json: "multiple dependents required" - "nondependants" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 226 - dependentRequired.json: "multiple dependents required" - "with dependencies" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 227 - dependentRequired.json: "multiple dependents required" - "missing dependency" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired/quux" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired/quux" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 228 - dependentRequired.json: "multiple dependents required" - "missing other dependency" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired/quux" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired/quux" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 229 - dependentRequired.json: "multiple dependents required" - "missing both dependencies" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing properties: foo, bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired/quux" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing properties: foo, bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired/quux" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 230 - dependentRequired.json: "dependencies with escaped characters" - "CRLF" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 231 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 232 - dependentRequired.json: "dependencies with escaped characters" - "CRLF missing dependent" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo\rbar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired/foo\nbar" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo\rbar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired/foo\nbar" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 233 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo'bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired/foo\"bar" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo'bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired/foo\"bar" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentRequired" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 234 - dependentSchemas.json: "single dependency" - "valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 235 - dependentSchemas.json: "single dependency" - "no dependency" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 236 - dependentSchemas.json: "single dependency" - "wrong type" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/bar/properties" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/bar/properties" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 237 - dependentSchemas.json: "single dependency" - "wrong type other" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/bar/properties" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/bar/properties" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 238 - dependentSchemas.json: "single dependency" - "wrong type both" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 338s # }, 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/bar/properties" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/bar/properties" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 239 - dependentSchemas.json: "single dependency" - "ignores arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 240 - dependentSchemas.json: "single dependency" - "ignores strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 241 - dependentSchemas.json: "single dependency" - "ignores other non-objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 242 - dependentSchemas.json: "boolean subschemas" - "object with property having schema true is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 243 - dependentSchemas.json: "boolean subschemas" - "object with property having schema false is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/bar" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/bar" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 244 - dependentSchemas.json: "boolean subschemas" - "object with both properties is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/bar" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/bar" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 245 - dependentSchemas.json: "boolean subschemas" - "empty object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 246 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 247 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo\"bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/foo'bar/required" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo\"bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/foo'bar/required" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 248 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab invalid under dependent schema" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object has fewer than 4 properties", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object has fewer than 4 properties", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 249 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote invalid under dependent schema" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo\"bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/foo'bar/required" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo\"bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/foo'bar/required" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 250 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches root" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 251 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches dependency" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 252 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches both" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 338s # }, 338s # { 338s # "error": "not all dependencies are satisfied", 338s # "instanceLocation": "", 338s # "keywordLocation": "/dependentSchemas" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 253 - dependentSchemas.json: "dependent subschema incompatible with root" - "no dependency" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 254 - enum.json: "simple enum validation" - "one of the enum is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 255 - enum.json: "simple enum validation" - "something else is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 256 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 257 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 258 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 338s # result: { 338s # "errors": [ 338s # { 338s # "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)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "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)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 259 - enum.json: "heterogeneous enum validation" - "valid object matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 260 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 261 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 262 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 263 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 264 - enum.json: "enums in properties" - "both properties are valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 265 - enum.json: "enums in properties" - "wrong foo value" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/enum" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/enum" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 266 - enum.json: "enums in properties" - "wrong bar value" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/enum" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/enum" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 267 - enum.json: "enums in properties" - "missing optional property is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 268 - enum.json: "enums in properties" - "missing required property is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 269 - enum.json: "enums in properties" - "missing all properties is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 270 - enum.json: "enum with escaped characters" - "member 1 is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 271 - enum.json: "enum with escaped characters" - "member 2 is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 272 - enum.json: "enum with escaped characters" - "another string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 273 - enum.json: "enum with false does not match 0" - "false is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 274 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 275 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 276 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 277 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 278 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 279 - enum.json: "enum with true does not match 1" - "true is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 280 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 281 - enum.json: "enum with true does not match 1" - "float one is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 282 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 283 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 284 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 285 - enum.json: "enum with 0 does not match false" - "false is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 286 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 287 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 288 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 289 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 290 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 291 - enum.json: "enum with 1 does not match true" - "true is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 292 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 293 - enum.json: "enum with 1 does not match true" - "float one is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 294 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 295 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 296 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 297 - enum.json: "nul characters in strings" - "match string with nul" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 298 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 299 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 300 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than or equal to 3", 338s # "instanceLocation": "", 338s # "keywordLocation": "/exclusiveMaximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than or equal to 3", 338s # "instanceLocation": "", 338s # "keywordLocation": "/exclusiveMaximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 301 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than or equal to 3", 338s # "instanceLocation": "", 338s # "keywordLocation": "/exclusiveMaximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than or equal to 3", 338s # "instanceLocation": "", 338s # "keywordLocation": "/exclusiveMaximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 302 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 303 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 304 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than or equal to 1.1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/exclusiveMinimum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than or equal to 1.1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/exclusiveMinimum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 305 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than or equal to 1.1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/exclusiveMinimum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than or equal to 1.1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/exclusiveMinimum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 306 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 307 - format.json: "email format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 308 - format.json: "email format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 309 - format.json: "email format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 310 - format.json: "email format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 311 - format.json: "email format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 312 - format.json: "email format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 313 - format.json: "idn-email format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 314 - format.json: "idn-email format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 315 - format.json: "idn-email format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 316 - format.json: "idn-email format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 317 - format.json: "idn-email format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 318 - format.json: "idn-email format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 319 - format.json: "regex format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 320 - format.json: "regex format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 321 - format.json: "regex format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 322 - format.json: "regex format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 323 - format.json: "regex format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 324 - format.json: "regex format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 325 - format.json: "ipv4 format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 326 - format.json: "ipv4 format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 327 - format.json: "ipv4 format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 328 - format.json: "ipv4 format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 329 - format.json: "ipv4 format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 330 - format.json: "ipv4 format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 331 - format.json: "ipv6 format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 332 - format.json: "ipv6 format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 333 - format.json: "ipv6 format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 334 - format.json: "ipv6 format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 335 - format.json: "ipv6 format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 336 - format.json: "ipv6 format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 337 - format.json: "idn-hostname format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 338 - format.json: "idn-hostname format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 339 - format.json: "idn-hostname format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 340 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 341 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 342 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 343 - format.json: "hostname format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 344 - format.json: "hostname format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 345 - format.json: "hostname format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 346 - format.json: "hostname format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 347 - format.json: "hostname format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 348 - format.json: "hostname format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 349 - format.json: "date format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 350 - format.json: "date format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 351 - format.json: "date format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 352 - format.json: "date format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 353 - format.json: "date format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 354 - format.json: "date format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 355 - format.json: "date-time format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 356 - format.json: "date-time format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 357 - format.json: "date-time format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 358 - format.json: "date-time format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 359 - format.json: "date-time format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 360 - format.json: "date-time format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 361 - format.json: "time format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 362 - format.json: "time format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 363 - format.json: "time format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 364 - format.json: "time format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 365 - format.json: "time format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 366 - format.json: "time format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 367 - format.json: "json-pointer format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 368 - format.json: "json-pointer format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 369 - format.json: "json-pointer format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 370 - format.json: "json-pointer format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 371 - format.json: "json-pointer format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 372 - format.json: "json-pointer format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 373 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 374 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 375 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 376 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 377 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 378 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 379 - format.json: "iri format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 380 - format.json: "iri format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 381 - format.json: "iri format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 382 - format.json: "iri format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 383 - format.json: "iri format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 384 - format.json: "iri format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 385 - format.json: "iri-reference format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 386 - format.json: "iri-reference format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 387 - format.json: "iri-reference format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 388 - format.json: "iri-reference format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 389 - format.json: "iri-reference format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 390 - format.json: "iri-reference format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 391 - format.json: "uri format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 392 - format.json: "uri format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 393 - format.json: "uri format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 394 - format.json: "uri format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 395 - format.json: "uri format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 396 - format.json: "uri format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 397 - format.json: "uri-reference format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 398 - format.json: "uri-reference format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 399 - format.json: "uri-reference format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 400 - format.json: "uri-reference format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 401 - format.json: "uri-reference format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 402 - format.json: "uri-reference format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 403 - format.json: "uri-template format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 404 - format.json: "uri-template format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 405 - format.json: "uri-template format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 406 - format.json: "uri-template format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 407 - format.json: "uri-template format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 408 - format.json: "uri-template format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 409 - format.json: "uuid format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 410 - format.json: "uuid format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 411 - format.json: "uuid format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 412 - format.json: "uuid format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 413 - format.json: "uuid format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 414 - format.json: "uuid format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 415 - format.json: "duration format" - "all string formats ignore integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 416 - format.json: "duration format" - "all string formats ignore floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 417 - format.json: "duration format" - "all string formats ignore objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 418 - format.json: "duration format" - "all string formats ignore arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 419 - format.json: "duration format" - "all string formats ignore booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 420 - format.json: "duration format" - "all string formats ignore nulls" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 421 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 422 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 423 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 424 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 425 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 426 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 427 - if-then-else.json: "if and then without else" - "valid through then" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 428 - if-then-else.json: "if and then without else" - "invalid through then" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than -10", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then/minimum" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than -10", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then/minimum" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 429 - if-then-else.json: "if and then without else" - "valid when if test fails" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 430 - if-then-else.json: "if and else without then" - "valid when if test passes" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 431 - if-then-else.json: "if and else without then" - "valid through else" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 432 - if-then-else.json: "if and else without then" - "invalid through else" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else/multipleOf" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else/multipleOf" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 433 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 434 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than -10", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then/minimum" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than -10", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then/minimum" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 435 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 436 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else/multipleOf" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else/multipleOf" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 437 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 438 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 439 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 440 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then/const" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then/const" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 441 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else/const" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else/const" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 442 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 443 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 444 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 445 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then/const" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then/const" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/then" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 446 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else/const" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else/const" 338s # }, 338s # { 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s 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" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s 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" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/int/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/int/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/additionalProperties" 338s # }, 338s # { 338s # "error": "subschemas 0, 1 are not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/int/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/properties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 449 - items.json: "a schema given for items" - "valid items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 450 - items.json: "a schema given for items" - "wrong type of items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/items/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/items/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 451 - items.json: "a schema given for items" - "ignores non-arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 452 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 453 - items.json: "an array of schemas for items" - "correct types" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 454 - items.json: "an array of schemas for items" - "wrong types" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/0/type" 338s # }, 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/items/1/type" 338s # }, 338s # { 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/0/type" 338s # }, 338s # { 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 455 - items.json: "an array of schemas for items" - "incomplete array of items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 456 - items.json: "an array of schemas for items" - "array with additional items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 457 - items.json: "an array of schemas for items" - "empty array" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 458 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 459 - items.json: "items with boolean schema (true)" - "any array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 460 - items.json: "items with boolean schema (true)" - "empty array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 461 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "item not permitted", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items" 338s # }, 338s # { 338s # "error": "item not permitted", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/items" 338s # }, 338s # { 338s # "error": "item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/items" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "item not permitted", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 462 - items.json: "items with boolean schema (false)" - "empty array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 463 - items.json: "items with boolean schemas" - "array with one item is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 464 - items.json: "items with boolean schemas" - "array with two items is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "item not permitted", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/items/1" 338s # }, 338s # { 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "item not permitted", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/items/1" 338s # }, 338s # { 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 465 - items.json: "items with boolean schemas" - "empty array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 466 - items.json: "items and subitems" - "valid items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 467 - items.json: "items and subitems" - "too many items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/3", 338s # "keywordLocation": "/additionalItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/3", 338s # "keywordLocation": "/additionalItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 468 - items.json: "items and subitems" - "too many sub-items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/0/2", 338s # "keywordLocation": "/items/0/$ref/additionalItems" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/0/$ref/additionalItems" 338s # }, 338s # { 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/0/2", 338s # "keywordLocation": "/items/0/$ref/additionalItems" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/0/$ref/additionalItems" 338s # }, 338s # { 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 469 - items.json: "items and subitems" - "wrong item" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/item/type", 338s # "error": "got object, not array", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/0/$ref/type" 338s # }, 338s # { 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/item/type", 338s # "error": "got object, not array", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/0/$ref/type" 338s # }, 338s # { 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 470 - items.json: "items and subitems" - "wrong sub-item" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "/0/0", 338s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/item/items", 338s # "error": "not all items are valid", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/0/$ref/items" 338s # }, 338s # { 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "/0/0", 338s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/item/items", 338s # "error": "not all items are valid", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/0/$ref/items" 338s # }, 338s # { 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 471 - items.json: "items and subitems" - "fewer items is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 472 - items.json: "nested items" - "valid nested array" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 473 - items.json: "nested items" - "nested array with invalid type" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/0/0/0/0", 338s # "keywordLocation": "/items/items/items/items/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0/0/0", 338s # "keywordLocation": "/items/items/items/items" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0/0", 338s # "keywordLocation": "/items/items/items" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/items" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/0/0/0/0", 338s # "keywordLocation": "/items/items/items/items/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0/0/0", 338s # "keywordLocation": "/items/items/items/items" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0/0", 338s # "keywordLocation": "/items/items/items" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/items" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 474 - items.json: "nested items" - "not deep enough" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not array", 338s # "instanceLocation": "/0/0/0", 338s # "keywordLocation": "/items/items/items/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0/0", 338s # "keywordLocation": "/items/items/items" 338s # }, 338s # { 338s # "error": "got integer, not array", 338s # "instanceLocation": "/0/1/0", 338s # "keywordLocation": "/items/items/items/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0/1", 338s # "keywordLocation": "/items/items/items" 338s # }, 338s # { 338s # "error": "got integer, not array", 338s # "instanceLocation": "/0/2/0", 338s # "keywordLocation": "/items/items/items/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0/2", 338s # "keywordLocation": "/items/items/items" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/items" 338s # }, 338s # { 338s # "error": "got integer, not array", 338s # "instanceLocation": "/1/0/0", 338s # "keywordLocation": "/items/items/items/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/1/0", 338s # "keywordLocation": "/items/items/items" 338s # }, 338s # { 338s # "error": "got integer, not array", 338s # "instanceLocation": "/1/1/0", 338s # "keywordLocation": "/items/items/items/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/1/1", 338s # "keywordLocation": "/items/items/items" 338s # }, 338s # { 338s # "error": "got integer, not array", 338s # "instanceLocation": "/1/2/0", 338s # "keywordLocation": "/items/items/items/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/1/2", 338s # "keywordLocation": "/items/items/items" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/items/items" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not array", 338s # "instanceLocation": "/0/0/0", 338s # "keywordLocation": "/items/items/items/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0/0", 338s # "keywordLocation": "/items/items/items" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/items" 338s # }, 338s # { 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 475 - items.json: "single-form items with null instance elements" - "allows null elements" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 476 - items.json: "array-form items with null instance elements" - "allows null elements" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 477 - maxContains.json: "maxContains without contains is ignored" - "one item valid against lone maxContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 478 - maxContains.json: "maxContains without contains is ignored" - "two items still valid against lone maxContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 479 - maxContains.json: "maxContains with contains" - "empty data" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 480 - maxContains.json: "maxContains with contains" - "all elements match, valid maxContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 481 - maxContains.json: "maxContains with contains" - "all elements match, invalid maxContains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 482 - maxContains.json: "maxContains with contains" - "some elements match, valid maxContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 483 - maxContains.json: "maxContains with contains" - "some elements match, invalid maxContains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 484 - maxContains.json: "maxContains with contains, value with a decimal" - "one element matches, valid maxContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 485 - maxContains.json: "maxContains with contains, value with a decimal" - "too many elements match, invalid maxContains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 486 - maxContains.json: "minContains < maxContains" - "actual < minContains < maxContains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # }, 338s # { 338s # "error": "array contains fewer than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 487 - maxContains.json: "minContains < maxContains" - "minContains < actual < maxContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 488 - maxContains.json: "minContains < maxContains" - "minContains < maxContains < actual" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 3 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 3 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 489 - maxItems.json: "maxItems validation" - "shorter is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 490 - maxItems.json: "maxItems validation" - "exact length is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 491 - maxItems.json: "maxItems validation" - "too long is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array has more than 2 items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array has more than 2 items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 492 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 493 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 494 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array has more than 2 items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array has more than 2 items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 495 - maxLength.json: "maxLength validation" - "shorter is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 496 - maxLength.json: "maxLength validation" - "exact length is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 497 - maxLength.json: "maxLength validation" - "too long is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "length is greater than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxLength" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "length is greater than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxLength" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 498 - maxLength.json: "maxLength validation" - "ignores non-strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 499 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 500 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 501 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "length is greater than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxLength" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "length is greater than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxLength" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 502 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 503 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 504 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object has more than 2 properties", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object has more than 2 properties", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 505 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 506 - maxProperties.json: "maxProperties validation" - "ignores strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 507 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 508 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 509 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object has more than 2 properties", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object has more than 2 properties", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 510 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 511 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object has more than 0 property", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object has more than 0 property", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 512 - maximum.json: "maximum validation" - "below the maximum is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 513 - maximum.json: "maximum validation" - "boundary point is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 514 - maximum.json: "maximum validation" - "above the maximum is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than 3", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than 3", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 515 - maximum.json: "maximum validation" - "ignores non-numbers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 516 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 517 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 518 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 519 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than 300", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than 300", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 520 - minContains.json: "minContains without contains is ignored" - "one item valid against lone minContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 521 - minContains.json: "minContains without contains is ignored" - "zero items still valid against lone minContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 522 - minContains.json: "minContains=1 with contains" - "empty data" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # }, 338s # { 338s # "error": "array contains fewer than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 523 - minContains.json: "minContains=1 with contains" - "no elements match" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/contains/const" 338s # }, 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # }, 338s # { 338s # "error": "array contains fewer than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/contains/const" 338s # }, 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 524 - minContains.json: "minContains=1 with contains" - "single element matches, valid minContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 525 - minContains.json: "minContains=1 with contains" - "some elements match, valid minContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 526 - minContains.json: "minContains=1 with contains" - "all elements match, valid minContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 527 - minContains.json: "minContains=2 with contains" - "empty data" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # }, 338s # { 338s # "error": "array contains fewer than 2 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 528 - minContains.json: "minContains=2 with contains" - "all elements match, invalid minContains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array contains fewer than 2 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array contains fewer than 2 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 529 - minContains.json: "minContains=2 with contains" - "some elements match, invalid minContains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array contains fewer than 2 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array contains fewer than 2 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 530 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (exactly as needed)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 531 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (more than needed)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 532 - minContains.json: "minContains=2 with contains" - "some elements match, valid minContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 533 - minContains.json: "minContains=2 with contains with a decimal value" - "one element matches, invalid minContains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array contains fewer than 2 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array contains fewer than 2 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 534 - minContains.json: "minContains=2 with contains with a decimal value" - "both elements match, valid minContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 535 - minContains.json: "maxContains = minContains" - "empty data" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # }, 338s # { 338s # "error": "array contains fewer than 2 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 536 - minContains.json: "maxContains = minContains" - "all elements match, invalid minContains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array contains fewer than 2 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array contains fewer than 2 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 537 - minContains.json: "maxContains = minContains" - "all elements match, invalid maxContains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 2 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 2 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 538 - minContains.json: "maxContains = minContains" - "all elements match, valid maxContains and minContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 539 - minContains.json: "maxContains < minContains" - "empty data" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # }, 338s # { 338s # "error": "array contains fewer than 3 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is not valid against any item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/contains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 540 - minContains.json: "maxContains < minContains" - "invalid minContains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array contains fewer than 3 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array contains fewer than 3 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 541 - minContains.json: "maxContains < minContains" - "invalid maxContains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 542 - minContains.json: "maxContains < minContains" - "invalid maxContains and minContains" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # }, 338s # { 338s # "error": "array contains fewer than 3 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 543 - minContains.json: "minContains = 0 with no maxContains" - "empty data" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 544 - minContains.json: "minContains = 0 with no maxContains" - "minContains = 0 makes contains always pass" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 545 - minContains.json: "minContains = 0 with maxContains" - "empty data" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 546 - minContains.json: "minContains = 0 with maxContains" - "not more than maxContains" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 547 - minContains.json: "minContains = 0 with maxContains" - "too many" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array contains more than 1 matching items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/maxContains" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 548 - minItems.json: "minItems validation" - "longer is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 549 - minItems.json: "minItems validation" - "exact length is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 550 - minItems.json: "minItems validation" - "too short is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array has fewer than 1 item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array has fewer than 1 item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 551 - minItems.json: "minItems validation" - "ignores non-arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 552 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 553 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array has fewer than 1 item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array has fewer than 1 item", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 554 - minLength.json: "minLength validation" - "longer is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 555 - minLength.json: "minLength validation" - "exact length is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 556 - minLength.json: "minLength validation" - "too short is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "length is less than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minLength" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "length is less than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minLength" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 557 - minLength.json: "minLength validation" - "ignores non-strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 558 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "length is less than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minLength" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "length is less than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minLength" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 559 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 560 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "length is less than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minLength" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "length is less than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minLength" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 561 - minProperties.json: "minProperties validation" - "longer is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 562 - minProperties.json: "minProperties validation" - "exact length is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 563 - minProperties.json: "minProperties validation" - "too short is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object has fewer than 1 property", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object has fewer than 1 property", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 564 - minProperties.json: "minProperties validation" - "ignores arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 565 - minProperties.json: "minProperties validation" - "ignores strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 566 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 567 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 568 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object has fewer than 1 property", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object has fewer than 1 property", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 569 - minimum.json: "minimum validation" - "above the minimum is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 570 - minimum.json: "minimum validation" - "boundary point is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 571 - minimum.json: "minimum validation" - "below the minimum is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than 1.1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minimum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than 1.1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minimum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 572 - minimum.json: "minimum validation" - "ignores non-numbers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 573 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 574 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 575 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 576 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 577 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than -2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minimum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than -2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minimum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 578 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than -2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minimum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than -2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minimum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 579 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 580 - multipleOf.json: "by int" - "int by int" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 581 - multipleOf.json: "by int" - "int by int fail" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/multipleOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/multipleOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 582 - multipleOf.json: "by int" - "ignores non-numbers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 583 - multipleOf.json: "by number" - "zero is multiple of anything" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 584 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 585 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 1.5", 338s # "instanceLocation": "", 338s # "keywordLocation": "/multipleOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 1.5", 338s # "instanceLocation": "", 338s # "keywordLocation": "/multipleOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 586 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 587 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 0.0001", 338s # "instanceLocation": "", 338s # "keywordLocation": "/multipleOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 0.0001", 338s # "instanceLocation": "", 338s # "keywordLocation": "/multipleOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 588 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 0.123456789", 338s # "instanceLocation": "", 338s # "keywordLocation": "/multipleOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is not a multiple of 0.123456789", 338s # "instanceLocation": "", 338s # "keywordLocation": "/multipleOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 589 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 590 - not.json: "not" - "allowed" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 591 - not.json: "not" - "disallowed" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 592 - not.json: "not multiple types" - "valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 593 - not.json: "not multiple types" - "mismatch" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 594 - not.json: "not multiple types" - "other mismatch" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 595 - not.json: "not more complex schema" - "match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 596 - not.json: "not more complex schema" - "other match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 597 - not.json: "not more complex schema" - "mismatch" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 598 - not.json: "forbidden property" - "property present" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/not" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/not" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 599 - not.json: "forbidden property" - "property absent" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 600 - not.json: "forbid everything with empty schema" - "number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 601 - not.json: "forbid everything with empty schema" - "string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 602 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 603 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 604 - not.json: "forbid everything with empty schema" - "null is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 605 - not.json: "forbid everything with empty schema" - "object is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 606 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 607 - not.json: "forbid everything with empty schema" - "array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 608 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 609 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 610 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 611 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 612 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 613 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 614 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 615 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 616 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 617 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is true", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 618 - not.json: "allow everything with boolean schema false" - "number is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 619 - not.json: "allow everything with boolean schema false" - "string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 620 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 621 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 622 - not.json: "allow everything with boolean schema false" - "null is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 623 - not.json: "allow everything with boolean schema false" - "object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 624 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 625 - not.json: "allow everything with boolean schema false" - "array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 626 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 627 - not.json: "double negation" - "any value is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 628 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 629 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/not" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 630 - oneOf.json: "oneOf" - "first oneOf valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 631 - oneOf.json: "oneOf" - "second oneOf valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 632 - oneOf.json: "oneOf" - "both oneOf valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 633 - oneOf.json: "oneOf" - "neither oneOf valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/type" 338s # }, 338s # { 338s # "error": "value is less than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/minimum" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/type" 338s # }, 338s # { 338s # "error": "value is less than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/minimum" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 634 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # }, 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 635 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 636 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 637 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1, 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 638 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 639 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 640 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0" 338s # }, 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1" 338s # }, 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/2" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0" 338s # }, 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1" 338s # }, 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/2" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 641 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 642 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 643 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 644 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/oneOf/0/properties/bar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/properties" 338s # }, 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/oneOf/1/properties/foo/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/properties" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/oneOf/0/properties/bar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/properties" 338s # }, 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/oneOf/1/properties/foo/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/properties" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 645 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 646 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 647 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/required" 338s # }, 338s # { 338s # "error": "object is missing properties: foo, baz", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/required" 338s # }, 338s # { 338s # "error": "object is missing properties: foo, baz", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 648 - oneOf.json: "oneOf with required" - "first valid - valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 649 - oneOf.json: "oneOf with required" - "second valid - valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 650 - oneOf.json: "oneOf with required" - "both valid - invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 651 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 652 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 653 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 654 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/required" 338s # }, 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: bar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/required" 338s # }, 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 655 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 656 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/oneOf/0/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/oneOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/oneOf/0/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/oneOf" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 657 - pattern.json: "pattern validation" - "a matching pattern is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 658 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 659 - pattern.json: "pattern validation" - "ignores booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 660 - pattern.json: "pattern validation" - "ignores integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 661 - pattern.json: "pattern validation" - "ignores floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 662 - pattern.json: "pattern validation" - "ignores objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 663 - pattern.json: "pattern validation" - "ignores arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 664 - pattern.json: "pattern validation" - "ignores null" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 665 - pattern.json: "pattern is not anchored" - "matches a substring" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 666 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 667 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 668 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/patternProperties/f.*o/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/patternProperties/f.*o/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 669 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/patternProperties/f.*o/type" 338s # }, 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/foooooo", 338s # "keywordLocation": "/patternProperties/f.*o/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/patternProperties/f.*o/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 670 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 671 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 672 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 673 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 674 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 675 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 676 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/a", 338s # "keywordLocation": "/patternProperties/a*/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/a", 338s # "keywordLocation": "/patternProperties/a*/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 677 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than 20", 338s # "instanceLocation": "/aaaa", 338s # "keywordLocation": "/patternProperties/aaa*/maximum" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than 20", 338s # "instanceLocation": "/aaaa", 338s # "keywordLocation": "/patternProperties/aaa*/maximum" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 678 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/aaa", 338s # "keywordLocation": "/patternProperties/a*/type" 338s # }, 338s # { 338s # "error": "value is greater than 20", 338s # "instanceLocation": "/aaaa", 338s # "keywordLocation": "/patternProperties/aaa*/maximum" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/aaa", 338s # "keywordLocation": "/patternProperties/a*/type" 338s # }, 338s # { 338s # "error": "value is greater than 20", 338s # "instanceLocation": "/aaaa", 338s # "keywordLocation": "/patternProperties/aaa*/maximum" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 679 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 680 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not boolean", 338s # "instanceLocation": "/a31b", 338s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not boolean", 338s # "instanceLocation": "/a31b", 338s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 681 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 682 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/a_X_3", 338s # "keywordLocation": "/patternProperties/X_/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/a_X_3", 338s # "keywordLocation": "/patternProperties/X_/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 683 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 684 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/patternProperties/b.*" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/patternProperties/b.*" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 685 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/patternProperties/b.*" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/patternProperties/b.*" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 686 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "property not permitted", 338s # "instanceLocation": "/foobar", 338s # "keywordLocation": "/patternProperties/b.*" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "property not permitted", 338s # "instanceLocation": "/foobar", 338s # "keywordLocation": "/patternProperties/b.*" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 687 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 688 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 689 - properties.json: "object properties validation" - "both properties present and valid is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 690 - properties.json: "object properties validation" - "one property invalid is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not string", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not string", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 691 - properties.json: "object properties validation" - "both properties invalid is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not string", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/type" 338s # }, 338s # { 338s # "error": "got array, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not string", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 692 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 693 - properties.json: "object properties validation" - "ignores arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 694 - properties.json: "object properties validation" - "ignores other non-objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 695 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 696 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array has more than 3 items", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/maxItems" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array has more than 3 items", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/maxItems" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 697 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array has fewer than 2 items", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/patternProperties/f.o/minItems" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array has fewer than 2 items", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/patternProperties/f.o/minItems" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 698 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 699 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array has fewer than 2 items", 338s # "instanceLocation": "/fxo", 338s # "keywordLocation": "/patternProperties/f.o/minItems" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array has fewer than 2 items", 338s # "instanceLocation": "/fxo", 338s # "keywordLocation": "/patternProperties/f.o/minItems" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 700 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 701 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 702 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/quux", 338s # "keywordLocation": "/additionalProperties/type" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/quux", 338s # "keywordLocation": "/additionalProperties/type" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 703 - properties.json: "properties with boolean schema" - "no property present is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 704 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 705 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 706 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 707 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 708 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/foo\tbar", 338s # "keywordLocation": "/properties/foo\tbar/type" 338s # }, 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/foo\nbar", 338s # "keywordLocation": "/properties/foo\nbar/type" 338s # }, 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/foo\fbar", 338s # "keywordLocation": "/properties/foo\fbar/type" 338s # }, 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/foo\rbar", 338s # "keywordLocation": "/properties/foo\rbar/type" 338s # }, 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/foo\"bar", 338s # "keywordLocation": "/properties/foo\"bar/type" 338s # }, 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/foo\\bar", 338s # "keywordLocation": "/properties/foo\\bar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/foo\tbar", 338s # "keywordLocation": "/properties/foo\tbar/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 709 - properties.json: "properties with null valued instance properties" - "allows null values" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 710 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 711 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 712 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 713 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/__proto__", 338s # "keywordLocation": "/properties/__proto__/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/__proto__", 338s # "keywordLocation": "/properties/__proto__/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 714 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/toString/length", 338s # "keywordLocation": "/properties/toString/properties/length/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/toString", 338s # "keywordLocation": "/properties/toString/properties" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/toString/length", 338s # "keywordLocation": "/properties/toString/properties/length/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/toString", 338s # "keywordLocation": "/properties/toString/properties" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 715 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not number", 338s # "instanceLocation": "/constructor", 338s # "keywordLocation": "/properties/constructor/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not number", 338s # "instanceLocation": "/constructor", 338s # "keywordLocation": "/properties/constructor/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 716 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 717 - propertyNames.json: "propertyNames validation" - "all property names valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 718 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "length is greater than 3", 338s # "instanceLocation": "/foobar", 338s # "keywordLocation": "/propertyNames/maxLength" 338s # }, 338s # { 338s # "error": "not all property names are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/propertyNames" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "length is greater than 3", 338s # "instanceLocation": "/foobar", 338s # "keywordLocation": "/propertyNames/maxLength" 338s # }, 338s # { 338s # "error": "not all property names are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/propertyNames" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 719 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 720 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 721 - propertyNames.json: "propertyNames validation" - "ignores strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 722 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 723 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 724 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "/aaA", 338s # "keywordLocation": "/propertyNames/pattern" 338s # }, 338s # { 338s # "error": "not all property names are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/propertyNames" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "/aaA", 338s # "keywordLocation": "/propertyNames/pattern" 338s # }, 338s # { 338s # "error": "not all property names are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/propertyNames" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 725 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 726 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 727 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 728 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/propertyNames" 338s # }, 338s # { 338s # "error": "not all property names are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/propertyNames" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "subschema is false", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/propertyNames" 338s # }, 338s # { 338s # "error": "not all property names are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/propertyNames" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 729 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 730 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 731 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/propertyNames/const" 338s # }, 338s # { 338s # "error": "not all property names are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/propertyNames" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/propertyNames/const" 338s # }, 338s # { 338s # "error": "not all property names are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/propertyNames" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 732 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 733 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 734 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 735 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/propertyNames/enum" 338s # }, 338s # { 338s # "error": "not all property names are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/propertyNames" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/propertyNames/enum" 338s # }, 338s # { 338s # "error": "not all property names are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/propertyNames" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 736 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 737 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 738 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 739 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "mismatch" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 740 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive mismatch" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/additionalProperties", 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/additionalProperties", 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 741 - recursiveRef.json: "$recursiveRef without using nesting" - "integer matches at the outer level" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 742 - recursiveRef.json: "$recursiveRef without using nesting" - "single level match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 743 - recursiveRef.json: "$recursiveRef without using nesting" - "integer does not match as a property value" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 338s # "error": "got integer, not object", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 338s # "error": "got integer, not object", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 744 - recursiveRef.json: "$recursiveRef without using nesting" - "two levels, properties match with inner definition" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 745 - recursiveRef.json: "$recursiveRef without using nesting" - "two levels, no match" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 338s # "error": "got integer, not object", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 338s # "error": "got integer, not object", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 746 - recursiveRef.json: "$recursiveRef with nesting" - "integer matches at the outer level" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 747 - recursiveRef.json: "$recursiveRef with nesting" - "single level match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 748 - recursiveRef.json: "$recursiveRef with nesting" - "integer now matches as a property value" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 749 - recursiveRef.json: "$recursiveRef with nesting" - "two levels, properties match with inner definition" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 750 - recursiveRef.json: "$recursiveRef with nesting" - "two levels, properties match with $recursiveRef" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 751 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "integer matches at the outer level" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 752 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "single level match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 753 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "integer does not match as a property value" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 338s # "error": "got integer, not object", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 338s # "error": "got integer, not object", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 754 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "two levels, properties match with inner definition" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 755 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "two levels, integer does not match as a property value" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 338s # "error": "got integer, not object", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 338s # "error": "got integer, not object", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 756 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "integer matches at the outer level" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 757 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "single level match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 758 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "integer does not match as a property value" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 338s # "error": "got integer, not object", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 338s # "error": "got integer, not object", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 759 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "two levels, properties match with inner definition" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 760 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "two levels, integer does not match as a property value" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 338s # "error": "got integer, not object", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 338s # "error": "got integer, not object", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 761 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node does not match; no recursion" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 338s # "error": "got object, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 338s # "error": "got boolean, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 338s # "error": "got boolean, not object", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 338s # "error": "got object, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 338s # "error": "got boolean, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 338s # "error": "got boolean, not object", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 762 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node matches: recursion uses the inner schema" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 763 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node does not match: recursion uses the inner schema" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 338s # "error": "got object, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 338s # "error": "got boolean, not integer", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 338s # "error": "got boolean, not object", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 338s # "error": "got object, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 338s # "error": "got boolean, not integer", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 338s # "error": "got boolean, not object", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 764 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node does not match; no recursion" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 338s # "error": "got object, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 338s # "error": "got boolean, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 338s # "error": "got boolean, not object", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 338s # "error": "got object, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 338s # "error": "got boolean, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 338s # "error": "got boolean, not object", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 765 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node matches: recursion only uses inner schema" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 766 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node does not match: recursion only uses inner schema" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 338s # "error": "got object, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 338s # "error": "got boolean, not integer", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 338s # "error": "got boolean, not object", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 338s # "error": "got object, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 338s # "error": "got object, not integer", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 338s # "error": "got boolean, not integer", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 338s # "error": "got boolean, not object", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 767 - recursiveRef.json: "multiple dynamic paths to the $recursiveRef keyword" - "recurse to anyLeafNode - floats are allowed" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 768 - recursiveRef.json: "multiple dynamic paths to the $recursiveRef keyword" - "recurse to integerNode - floats are not allowed" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_integerNode.json#/type", 338s # "error": "got number, not one of object, integer", 338s # "instanceLocation": "/november", 338s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_inner.json#/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else/$ref/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_main.json#/else", 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_integerNode.json#/type", 338s # "error": "got number, not one of object, integer", 338s # "instanceLocation": "/november", 338s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_inner.json#/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else/$ref/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_main.json#/else", 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 769 - recursiveRef.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "numeric node" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 770 - recursiveRef.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "integer node" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/integerNode.json#/type", 338s # "error": "got number, not one of object, integer", 338s # "instanceLocation": "/november", 338s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/inner.json#/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else/$ref/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/main.json#/else", 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/integerNode.json#/type", 338s # "error": "got number, not one of object, integer", 338s # "instanceLocation": "/november", 338s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/inner.json#/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else/$ref/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/main.json#/else", 338s # "error": "subschema is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/else" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 771 - ref.json: "root pointer ref" - "match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 772 - ref.json: "root pointer ref" - "recursive match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 773 - ref.json: "root pointer ref" - "mismatch" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 774 - ref.json: "root pointer ref" - "recursive mismatch" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/additionalProperties", 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/additionalProperties", 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/additionalProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 775 - ref.json: "relative pointer ref to object" - "match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 776 - ref.json: "relative pointer ref to object" - "mismatch" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/properties/foo/type", 338s # "error": "got boolean, not integer", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/properties/foo/type", 338s # "error": "got boolean, not integer", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 777 - ref.json: "relative pointer ref to array" - "match array" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 778 - ref.json: "relative pointer ref to array" - "mismatch array" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/items/0/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/items/1/$ref/type" 338s # }, 338s # { 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/items/0/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/items/1/$ref/type" 338s # }, 338s # { 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 779 - ref.json: "escaped pointer ref" - "slash invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/slash", 338s # "keywordLocation": "/properties/slash/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/slash", 338s # "keywordLocation": "/properties/slash/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 780 - ref.json: "escaped pointer ref" - "tilde invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/tilde", 338s # "keywordLocation": "/properties/tilde/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/tilde", 338s # "keywordLocation": "/properties/tilde/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 781 - ref.json: "escaped pointer ref" - "percent invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/percent", 338s # "keywordLocation": "/properties/percent/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/percent", 338s # "keywordLocation": "/properties/percent/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 782 - ref.json: "escaped pointer ref" - "slash valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 783 - ref.json: "escaped pointer ref" - "tilde valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 784 - ref.json: "escaped pointer ref" - "percent valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 785 - ref.json: "nested refs" - "nested ref valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 786 - ref.json: "nested refs" - "nested ref invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/a/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/a/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 787 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 788 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "array has more than 2 items", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/maxItems" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "array has more than 2 items", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/maxItems" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 789 - ref.json: "ref applies alongside sibling keywords" - "ref invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/reffed/type", 338s # "error": "got string, not array", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/reffed/type", 338s # "error": "got string, not array", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 790 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 791 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/nonNegativeInteger/minimum", 338s # "error": "value is less than 0", 338s # "instanceLocation": "/minLength", 338s # "keywordLocation": "/$ref/allOf/2/$ref/properties/minLength/$ref/$ref/minimum" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/allOf/2/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 338s # "error": "subschema 2 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/nonNegativeInteger/minimum", 338s # "error": "value is less than 0", 338s # "instanceLocation": "/minLength", 338s # "keywordLocation": "/$ref/allOf/2/$ref/properties/minLength/$ref/$ref/minimum" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/allOf/2/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 338s # "error": "subschema 2 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 792 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 793 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/$ref", 338s # "keywordLocation": "/properties/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/$ref", 338s # "keywordLocation": "/properties/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 794 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 795 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/is-string/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/$ref", 338s # "keywordLocation": "/properties/$ref/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/is-string/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/$ref", 338s # "keywordLocation": "/properties/$ref/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 796 - ref.json: "$ref to boolean schema true" - "any value is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 797 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/bool", 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/bool", 338s # "error": "subschema is false", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 798 - ref.json: "Recursive references between schemas" - "valid tree" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 799 - ref.json: "Recursive references between schemas" - "invalid tree" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties/value/type", 338s # "error": "got string, not number", 338s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 338s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/nodes/0/subtree/nodes/0", 338s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/nodes/0/subtree/nodes", 338s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/nodes/0/subtree", 338s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/nodes/0", 338s # "keywordLocation": "/properties/nodes/items/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/nodes", 338s # "keywordLocation": "/properties/nodes/items" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties/value/type", 338s # "error": "got string, not number", 338s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 338s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/nodes/0/subtree/nodes/0", 338s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/nodes/0/subtree/nodes", 338s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/nodes/0/subtree", 338s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/nodes/0", 338s # "keywordLocation": "/properties/nodes/items/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/nodes", 338s # "keywordLocation": "/properties/nodes/items" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 800 - ref.json: "refs with quote" - "object with numbers is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 801 - ref.json: "refs with quote" - "object with strings is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 338s # "error": "got string, not number", 338s # "instanceLocation": "/foo\"bar", 338s # "keywordLocation": "/properties/foo\"bar/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 338s # "error": "got string, not number", 338s # "instanceLocation": "/foo\"bar", 338s # "keywordLocation": "/properties/foo\"bar/$ref/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 802 - ref.json: "ref creates new scope when adjacent to keywords" - "referenced subschema doesn't see annotations from properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/prop1", 338s # "keywordLocation": "/$ref/unevaluatedProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/prop1", 338s # "keywordLocation": "/$ref/unevaluatedProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s 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" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s 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" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/enum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 805 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 806 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 807 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/$ref/$ref/properties/bar/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/$ref/$ref/properties/bar/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 808 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 809 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo/bar", 338s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 810 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/$ref/$ref/properties/bar/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/$ref/$ref/properties/bar/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 811 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 812 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 813 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 814 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 815 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id1/int.json#/maximum", 338s # "error": "value is greater than 10", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/maximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id1/int.json#/maximum", 338s # "error": "value is greater than 10", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/maximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 816 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 817 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id2/base.json#/$defs/bigint/maximum", 338s # "error": "value is greater than 10", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/maximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id2/base.json#/$defs/bigint/maximum", 338s # "error": "value is greater than 10", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/maximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 818 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 819 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 338s # "error": "value is less than 30", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/minimum" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 338s # "error": "value is less than 30", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/minimum" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 820 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 821 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 822 - ref.json: "URN base URI with NSS" - "a string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 823 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 824 - ref.json: "URN base URI with r-component" - "a string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 825 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 826 - ref.json: "URN base URI with q-component" - "a string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 827 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 828 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 829 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 830 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 831 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 832 - ref.json: "URN ref with nested pointer ref" - "a string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 833 - ref.json: "URN ref with nested pointer ref" - "a non-string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 834 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 835 - ref.json: "ref to if" - "an integer is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 836 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 837 - ref.json: "ref to then" - "an integer is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 838 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 839 - ref.json: "ref to else" - "an integer is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 840 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 841 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 842 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 843 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 844 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 845 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 846 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 847 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs//$defs//type", 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/$ref/type" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs//$defs//type", 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/$ref/type" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 848 - ref.json: "$ref with $recursiveAnchor" - "extra items allowed for inner arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 849 - ref.json: "$ref with $recursiveAnchor" - "extra items disallowed for root" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 850 - refRemote.json: "remote ref" - "remote ref valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 851 - refRemote.json: "remote ref" - "remote ref invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 852 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 853 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 854 - refRemote.json: "anchor within remote ref" - "remote anchor valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 855 - refRemote.json: "anchor within remote ref" - "remote anchor invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 856 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 857 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 858 - refRemote.json: "base URI change" - "base URI change ref valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 859 - refRemote.json: "base URI change" - "base URI change ref invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/folderInteger.json#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/0/0", 338s # "keywordLocation": "/items/items/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/#/items", 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/items" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/#/items", 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/folderInteger.json#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/0/0", 338s # "keywordLocation": "/items/items/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/#/items", 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/items/items" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/#/items", 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 860 - refRemote.json: "base URI change - change folder" - "number is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 861 - refRemote.json: "base URI change - change folder" - "string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/folderInteger.json#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/list/0", 338s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/#/items", 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/list", 338s # "keywordLocation": "/properties/list/$ref/items" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs1.json#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/folderInteger.json#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/list/0", 338s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/#/items", 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/list", 338s # "keywordLocation": "/properties/list/$ref/items" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs1.json#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 862 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 863 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/folderInteger.json#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/list/0", 338s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/#/$defs/bar/items", 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/list", 338s # "keywordLocation": "/properties/list/$ref/items" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs2.json#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/folderInteger.json#/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "/list/0", 338s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/#/$defs/bar/items", 338s # "error": "subschema is not valid against all items", 338s # "instanceLocation": "/list", 338s # "keywordLocation": "/properties/list/$ref/items" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs2.json#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 864 - refRemote.json: "root ref in remote ref" - "string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 865 - refRemote.json: "root ref in remote ref" - "null is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 866 - refRemote.json: "root ref in remote ref" - "object is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf/0/type", 338s # "error": "got object, not null", 338s # "instanceLocation": "/name", 338s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "/name", 338s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/name", 338s # "keywordLocation": "/properties/name/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/object#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf/0/type", 338s # "error": "got object, not null", 338s # "instanceLocation": "/name", 338s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "/name", 338s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "/name", 338s # "keywordLocation": "/properties/name/$ref/anyOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/object#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 867 - refRemote.json: "remote ref with ref to defs" - "invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/$ref/$ref/properties/bar/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/$ref/$ref/properties/bar/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 868 - refRemote.json: "remote ref with ref to defs" - "valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 869 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 870 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 871 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/name/foo", 338s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/foo-ref-string.json#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/name", 338s # "keywordLocation": "/properties/name/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/some-id#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/name/foo", 338s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/foo-ref-string.json#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/name", 338s # "keywordLocation": "/properties/name/$ref/properties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/some-id#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 872 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 873 - refRemote.json: "remote HTTP ref with different $id" - "number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 874 - refRemote.json: "remote HTTP ref with different $id" - "string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 875 - refRemote.json: "remote HTTP ref with different URN $id" - "number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 876 - refRemote.json: "remote HTTP ref with different URN $id" - "string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 877 - refRemote.json: "remote HTTP ref with nested absolute ref" - "number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 878 - refRemote.json: "remote HTTP ref with nested absolute ref" - "string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 879 - refRemote.json: "$ref to $ref finds detached $anchor" - "number is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 880 - refRemote.json: "$ref to $ref finds detached $anchor" - "non-number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/detached-ref.json#/$defs/detached/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/detached-ref.json#/$defs/detached/type", 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/$ref/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 881 - required.json: "required validation" - "present required property is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 882 - required.json: "required validation" - "non-present required property is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing property: foo", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 883 - required.json: "required validation" - "ignores arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 884 - required.json: "required validation" - "ignores strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 885 - required.json: "required validation" - "ignores other non-objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 886 - required.json: "required default validation" - "not required by default" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 887 - required.json: "required with empty array" - "property not required" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 888 - required.json: "required with escaped characters" - "object with all properties present is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 889 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 890 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 891 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 892 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing properties: __proto__, toString, constructor", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing properties: __proto__, toString, constructor", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 893 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing properties: toString, constructor", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing properties: toString, constructor", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 894 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing properties: __proto__, constructor", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing properties: __proto__, constructor", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 895 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing properties: __proto__, toString", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "object is missing properties: __proto__, toString", 338s # "instanceLocation": "", 338s # "keywordLocation": "/required" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 896 - required.json: "required properties whose names are Javascript object property names" - "all present" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 897 - type.json: "integer type matches integers" - "an integer is an integer" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 898 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 899 - type.json: "integer type matches integers" - "a float is not an integer" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 900 - type.json: "integer type matches integers" - "a string is not an integer" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 901 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 902 - type.json: "integer type matches integers" - "an object is not an integer" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 903 - type.json: "integer type matches integers" - "an array is not an integer" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 904 - type.json: "integer type matches integers" - "a boolean is not an integer" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 905 - type.json: "integer type matches integers" - "null is not an integer" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not integer", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 906 - type.json: "number type matches numbers" - "an integer is a number" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 907 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 908 - type.json: "number type matches numbers" - "a float is a number" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 909 - type.json: "number type matches numbers" - "a string is not a number" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 910 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 911 - type.json: "number type matches numbers" - "an object is not a number" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 912 - type.json: "number type matches numbers" - "an array is not a number" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 913 - type.json: "number type matches numbers" - "a boolean is not a number" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 914 - type.json: "number type matches numbers" - "null is not a number" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 915 - type.json: "string type matches strings" - "1 is not a string" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 916 - type.json: "string type matches strings" - "a float is not a string" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 917 - type.json: "string type matches strings" - "a string is a string" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 918 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 919 - type.json: "string type matches strings" - "an empty string is still a string" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 920 - type.json: "string type matches strings" - "an object is not a string" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 921 - type.json: "string type matches strings" - "an array is not a string" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 922 - type.json: "string type matches strings" - "a boolean is not a string" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 923 - type.json: "string type matches strings" - "null is not a string" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 924 - type.json: "object type matches objects" - "an integer is not an object" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 925 - type.json: "object type matches objects" - "a float is not an object" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 926 - type.json: "object type matches objects" - "a string is not an object" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 927 - type.json: "object type matches objects" - "an object is an object" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 928 - type.json: "object type matches objects" - "an array is not an object" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 929 - type.json: "object type matches objects" - "a boolean is not an object" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 930 - type.json: "object type matches objects" - "null is not an object" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 931 - type.json: "array type matches arrays" - "an integer is not an array" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not array", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not array", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 932 - type.json: "array type matches arrays" - "a float is not an array" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not array", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not array", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 933 - type.json: "array type matches arrays" - "a string is not an array" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not array", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not array", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 934 - type.json: "array type matches arrays" - "an object is not an array" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not array", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not array", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 935 - type.json: "array type matches arrays" - "an array is an array" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 936 - type.json: "array type matches arrays" - "a boolean is not an array" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not array", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not array", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 937 - type.json: "array type matches arrays" - "null is not an array" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not array", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not array", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 938 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 939 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 940 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 941 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 942 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 943 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 944 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 945 - type.json: "boolean type matches booleans" - "true is a boolean" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 946 - type.json: "boolean type matches booleans" - "false is a boolean" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 947 - type.json: "boolean type matches booleans" - "null is not a boolean" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not boolean", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 948 - type.json: "null type matches only the null object" - "an integer is not null" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 949 - type.json: "null type matches only the null object" - "a float is not null" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 950 - type.json: "null type matches only the null object" - "zero is not null" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 951 - type.json: "null type matches only the null object" - "a string is not null" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 952 - type.json: "null type matches only the null object" - "an empty string is not null" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 953 - type.json: "null type matches only the null object" - "an object is not null" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 954 - type.json: "null type matches only the null object" - "an array is not null" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 955 - type.json: "null type matches only the null object" - "true is not null" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 956 - type.json: "null type matches only the null object" - "false is not null" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 957 - type.json: "null type matches only the null object" - "null is null" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 958 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 959 - type.json: "multiple types can be specified in an array" - "a string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 960 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not one of integer, string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got number, not one of integer, string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 961 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not one of integer, string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got object, not one of integer, string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 962 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not one of integer, string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got array, not one of integer, string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 963 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not one of integer, string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got boolean, not one of integer, string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 964 - type.json: "multiple types can be specified in an array" - "null is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not one of integer, string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not one of integer, string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 965 - type.json: "type as array with one item" - "string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 966 - type.json: "type as array with one item" - "number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not one of string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not one of string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 967 - type.json: "type: array or object" - "array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 968 - type.json: "type: array or object" - "object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 969 - type.json: "type: array or object" - "number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not one of array, object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not one of array, object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 970 - type.json: "type: array or object" - "string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not one of array, object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not one of array, object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 971 - type.json: "type: array or object" - "null is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not one of array, object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got null, not one of array, object", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 972 - type.json: "type: array, object or null" - "array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 973 - type.json: "type: array, object or null" - "object is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 974 - type.json: "type: array, object or null" - "null is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 975 - type.json: "type: array, object or null" - "number is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not one of array, object, null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not one of array, object, null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 976 - type.json: "type: array, object or null" - "string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not one of array, object, null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not one of array, object, null", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 977 - unevaluatedItems.json: "unevaluatedItems true" - "with no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 978 - unevaluatedItems.json: "unevaluatedItems true" - "with unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 979 - unevaluatedItems.json: "unevaluatedItems false" - "with no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 980 - unevaluatedItems.json: "unevaluatedItems false" - "with unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 981 - unevaluatedItems.json: "unevaluatedItems as schema" - "with no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 982 - unevaluatedItems.json: "unevaluatedItems as schema" - "with valid unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 983 - unevaluatedItems.json: "unevaluatedItems as schema" - "with invalid unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/unevaluatedItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/unevaluatedItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 984 - unevaluatedItems.json: "unevaluatedItems with uniform items" - "unevaluatedItems doesn't apply" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 985 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 986 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 987 - unevaluatedItems.json: "unevaluatedItems with items and additionalItems" - "unevaluatedItems doesn't apply" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 988 - unevaluatedItems.json: "unevaluatedItems with ignored additionalItems" - "invalid under unevaluatedItems" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/unevaluatedItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/unevaluatedItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 989 - unevaluatedItems.json: "unevaluatedItems with ignored additionalItems" - "all valid under unevaluatedItems" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 990 - unevaluatedItems.json: "unevaluatedItems with ignored applicator additionalItems" - "invalid under unevaluatedItems" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/unevaluatedItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/unevaluatedItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 991 - unevaluatedItems.json: "unevaluatedItems with ignored applicator additionalItems" - "all valid under unevaluatedItems" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 992 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 993 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 994 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with only (valid) additional items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 995 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with no additional items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 996 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with invalid additional item" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not boolean", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/unevaluatedItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not boolean", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/unevaluatedItems/type" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 997 - unevaluatedItems.json: "unevaluatedItems with nested items and additionalItems" - "with no additional items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 998 - unevaluatedItems.json: "unevaluatedItems with nested items and additionalItems" - "with additional items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 999 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with no additional items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1000 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with additional items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1001 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1002 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1003 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1004 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/3", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/3", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1005 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1006 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1007 - unevaluatedItems.json: "unevaluatedItems with not" - "with unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1008 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1009 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/3", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/3", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1010 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1011 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/4", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/4", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1012 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1013 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1014 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1015 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1016 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1017 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1018 - unevaluatedItems.json: "unevaluatedItems with $recursiveRef" - "with no unevaluated items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1019 - unevaluatedItems.json: "unevaluatedItems with $recursiveRef" - "with unevaluated items" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/1/3", 338s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items", 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/1/3", 338s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "/1", 338s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items", 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/items" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1020 - unevaluatedItems.json: "unevaluatedItems can't see inside cousins" - "always fails" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/allOf/1/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/allOf/1/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1021 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "no extra items" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1022 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "uncle keyword evaluation is not significant" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/foo/1", 338s # "keywordLocation": "/properties/foo/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/unevaluatedItems" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/foo/1", 338s # "keywordLocation": "/properties/foo/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/unevaluatedItems" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1023 - unevaluatedItems.json: "non-array instances are valid" - "ignores booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1024 - unevaluatedItems.json: "non-array instances are valid" - "ignores integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1025 - unevaluatedItems.json: "non-array instances are valid" - "ignores floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1026 - unevaluatedItems.json: "non-array instances are valid" - "ignores objects" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1027 - unevaluatedItems.json: "non-array instances are valid" - "ignores strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1028 - unevaluatedItems.json: "non-array instances are valid" - "ignores null" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1029 - unevaluatedItems.json: "unevaluatedItems with null instance elements" - "allows null elements" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1030 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "valid in case if is evaluated" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1031 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "invalid in case if is evaluated" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/unevaluatedItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 1032 - unevaluatedProperties.json: "unevaluatedProperties true" - "with no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1033 - unevaluatedProperties.json: "unevaluatedProperties true" - "with unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1034 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1035 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with valid unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1036 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with invalid unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "length is less than 3", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties/minLength" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "length is less than 3", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties/minLength" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1037 - unevaluatedProperties.json: "unevaluatedProperties false" - "with no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1038 - unevaluatedProperties.json: "unevaluatedProperties false" - "with unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1039 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1040 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1041 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1042 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1043 - unevaluatedProperties.json: "unevaluatedProperties with adjacent additionalProperties" - "with no additional properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1044 - unevaluatedProperties.json: "unevaluatedProperties with adjacent additionalProperties" - "with additional properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1045 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with no additional properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1046 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with additional properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1047 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with no additional properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1048 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with additional properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1049 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with no additional properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1050 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with additional properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1051 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with no nested unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1052 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with nested unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1053 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1054 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1055 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1056 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/quux", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/quux", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1057 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1058 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/quux", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/quux", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1059 - unevaluatedProperties.json: "unevaluatedProperties with not" - "with unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1060 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1061 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1062 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1063 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1064 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has no unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1065 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1066 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1067 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1068 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1069 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1070 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has no unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1071 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1072 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1073 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1074 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1075 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1076 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1077 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1078 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1079 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/baz", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1080 - unevaluatedProperties.json: "unevaluatedProperties with $recursiveRef" - "with no unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1081 - unevaluatedProperties.json: "unevaluatedProperties with $recursiveRef" - "with unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/branches/foo", 338s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/branches", 338s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/branches/foo", 338s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/branches", 338s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1082 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins" - "always fails" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1083 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins (reverse order)" - "always fails" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1084 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with no nested unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1085 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with nested unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1086 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with no nested unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1087 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with nested unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1088 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with no nested unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1089 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with nested unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1090 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with no nested unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1091 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with nested unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1092 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with no nested unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1093 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with nested unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1094 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with no nested unevaluated properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1095 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with nested unevaluated properties" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/1/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 1 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1096 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "no extra properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1097 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "uncle keyword evaluation is not significant" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo/faz", 338s # "keywordLocation": "/properties/foo/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo/faz", 338s # "keywordLocation": "/properties/foo/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/properties/foo/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1098 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "base case: both properties present" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1099 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, bar is missing" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1100 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, foo is missing" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "subschema 0 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1101 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "base case: both properties present" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1102 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, bar is missing" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1103 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, foo is missing" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1104 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Empty is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1105 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Single is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1106 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 1st level is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/y", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/y", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1107 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Nested is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1108 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 2nd level is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/unevaluatedProperties", 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/x/y", 338s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/unevaluatedProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/x", 338s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/unevaluatedProperties", 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/x/y", 338s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/unevaluatedProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/x", 338s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1109 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Deep nested is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1110 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 3rd level is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/unevaluatedProperties", 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/x/x/y", 338s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/unevaluatedProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/x/x", 338s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/x", 338s # "keywordLocation": "/properties/x/$ref/properties" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/unevaluatedProperties", 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/x/x/y", 338s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/unevaluatedProperties", 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "/x/x", 338s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "/x", 338s # "keywordLocation": "/properties/x/$ref/properties" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1111 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "Empty is invalid (no x or y)" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/two/required", 338s # "error": "object is missing property: x", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 338s # }, 338s # { 338s # "error": "object is missing property: y", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf" 338s # }, 338s # { 338s # "error": "subschema 2 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/two/required", 338s # "error": "object is missing property: x", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 338s # }, 338s # { 338s # "error": "object is missing property: y", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf" 338s # }, 338s # { 338s # "error": "subschema 2 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1112 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b are invalid (no x or y)" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/two/required", 338s # "error": "object is missing property: x", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 338s # }, 338s # { 338s # "error": "object is missing property: y", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf" 338s # }, 338s # { 338s # "error": "subschema 2 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/two/required", 338s # "error": "object is missing property: x", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 338s # }, 338s # { 338s # "error": "object is missing property: y", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf" 338s # }, 338s # { 338s # "error": "subschema 2 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1113 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "x and y are invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf" 338s # }, 338s # { 338s # "error": "subschema 2 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/x", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/y", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf" 338s # }, 338s # { 338s # "error": "subschema 2 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/x", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/y", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1114 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and x are valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1115 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and y are valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1116 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x are valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1117 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and y are valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1118 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x and y are invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf" 338s # }, 338s # { 338s # "error": "subschema 2 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/x", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/y", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf/2/oneOf" 338s # }, 338s # { 338s # "error": "subschema 2 is not valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/allOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/x", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/y", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1119 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "Empty is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 338s # "error": "object is missing property: c", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 338s # "error": "object is missing property: d", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 338s # "error": "object is missing property: b", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 338s # "error": "object is missing property: xx", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 338s # "error": "object is missing property: all", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 338s # "error": "object is missing property: c", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 338s # "error": "object is missing property: d", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 338s # "error": "object is missing property: b", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 338s # "error": "object is missing property: xx", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 338s # "error": "object is missing property: all", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1120 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1121 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1122 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1123 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "d is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1124 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + b is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1125 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + c is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1126 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + d is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1127 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + c is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/b", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/c", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/b", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/c", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1128 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + d is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/b", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/d", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/b", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/d", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1129 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c + d is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 338s # "error": "object is missing property: b", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 338s # "error": "object is missing property: xx", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 338s # "error": "object is missing property: all", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/c", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/d", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 338s # "error": "object is missing property: b", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 338s # "error": "object is missing property: xx", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 338s # "error": "object is missing property: all", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/c", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/d", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1130 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1131 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foox is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1132 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foo is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1133 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + a is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1134 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + b is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "multiple subschemas are valid: 1, 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/b", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/xx", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "multiple subschemas are valid: 1, 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/b", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/xx", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1135 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + c is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "multiple subschemas are valid: 0, 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/c", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/xx", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "multiple subschemas are valid: 0, 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/c", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/xx", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1136 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + d is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "multiple subschemas are valid: 0, 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/d", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/xx", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 338s # "error": "multiple subschemas are valid: 0, 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/0/$ref/oneOf" 338s # }, 338s # { 338s # "error": "object is missing property: a", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf/1/required" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/d", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/xx", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1137 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1138 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + foo is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1139 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + a is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "multiple subschemas are valid: 0, 1", 338s # "instanceLocation": "", 338s # "keywordLocation": "/oneOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1140 - unevaluatedProperties.json: "non-object instances are valid" - "ignores booleans" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1141 - unevaluatedProperties.json: "non-object instances are valid" - "ignores integers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1142 - unevaluatedProperties.json: "non-object instances are valid" - "ignores floats" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1143 - unevaluatedProperties.json: "non-object instances are valid" - "ignores arrays" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1144 - unevaluatedProperties.json: "non-object instances are valid" - "ignores strings" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1145 - unevaluatedProperties.json: "non-object instances are valid" - "ignores null" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1146 - unevaluatedProperties.json: "unevaluatedProperties with null valued instance properties" - "allows null valued properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1147 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "allows only number properties" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1148 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "string property is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/a", 338s # "keywordLocation": "/unevaluatedProperties/type" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "/a", 338s # "keywordLocation": "/unevaluatedProperties/type" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1149 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "valid in case if is evaluated" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1150 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "invalid in case if is evaluated" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1151 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't consider dependentSchemas" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/foo", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1152 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't see bar when foo2 is absent" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/unevaluatedProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/unevaluatedProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1153 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties sees bar when foo2 is present" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 1154 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1155 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1156 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 2 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 2 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1157 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1158 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1159 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1160 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1161 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 2 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 2 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1162 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1163 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1164 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1165 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1166 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1167 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1168 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1169 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 2 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 2 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1170 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1171 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1172 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1173 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1174 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1175 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1176 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1177 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 4 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 4 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1178 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1179 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1180 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1181 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1182 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1183 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1184 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1185 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1186 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1187 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1188 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 2 and 3 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 2 and 3 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1189 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 2 and 3 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 2 and 3 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1190 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1191 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1192 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1193 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "items at indices 0 and 1 are not unique", 338s # "instanceLocation": "", 338s # "keywordLocation": "/uniqueItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1194 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/additionalItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/additionalItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1195 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1196 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1197 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1198 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1199 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1200 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1201 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1202 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1203 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1204 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1205 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1206 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1207 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1208 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1209 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1210 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1211 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1212 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1213 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1214 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1215 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1216 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1217 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1218 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1219 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1220 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1221 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1222 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/additionalItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional item not permitted", 338s # "instanceLocation": "/2", 338s # "keywordLocation": "/additionalItems" 338s # }, 338s # { 338s # "error": "subschema is not valid against all additional items", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 1223 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "applicator vocabulary still works" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 338s # "error": "property not permitted", 338s # "instanceLocation": "/badProperty", 338s # "keywordLocation": "/properties/badProperty" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 338s # "error": "property not permitted", 338s # "instanceLocation": "/badProperty", 338s # "keywordLocation": "/properties/badProperty" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/properties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1224 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: valid number" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1225 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: invalid number, but it still validates" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1226 - vocabulary.json: "ignore unrecognized optional vocabulary" - "string value" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not number", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1227 - vocabulary.json: "ignore unrecognized optional vocabulary" - "number value" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 1228 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "exact match to enum, and type matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1229 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "in implementations that strip $anchor, this may match either $def" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/$ref/enum" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/$ref/enum" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 338s # "error": "got object, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1230 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "match $ref to $anchor" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1231 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "no match on enum or $ref to $anchor" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/$ref/enum" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/$ref/enum" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 1232 - optional/bignum.json: "integer" - "a bignum is an integer" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1233 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1234 - optional/bignum.json: "number" - "a bignum is a number" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1235 - optional/bignum.json: "number" - "a negative bignum is a number" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1236 - optional/bignum.json: "string" - "a bignum is not a string" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/type" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1237 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1238 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 338s # "instanceLocation": "", 338s # "keywordLocation": "/exclusiveMaximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 338s # "instanceLocation": "", 338s # "keywordLocation": "/exclusiveMaximum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1239 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1240 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 338s # "instanceLocation": "", 338s # "keywordLocation": "/exclusiveMinimum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 338s # "instanceLocation": "", 338s # "keywordLocation": "/exclusiveMinimum" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 1241 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "first item not a string is invalid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/$ref/prefixItems/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems", 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/prefixItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems/0/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "/0", 338s # "keywordLocation": "/$ref/prefixItems/0/type" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems", 338s # "error": "not all items are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref/prefixItems" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1242 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "first item is a string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1243 - optional/cross-draft.json: "refs to historic drafts are processed as historic drafts" - "missing bar is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 1244 - optional/dependencies-compatibility.json: "single dependency" - "neither" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1245 - optional/dependencies-compatibility.json: "single dependency" - "nondependant" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1246 - optional/dependencies-compatibility.json: "single dependency" - "with dependency" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1247 - optional/dependencies-compatibility.json: "single dependency" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "bar": [ 338s # "foo" 338s # ] 338s # } 338s # } 338s # data: { 338s # "bar": 2 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1248 - optional/dependencies-compatibility.json: "single dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1249 - optional/dependencies-compatibility.json: "single dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1250 - optional/dependencies-compatibility.json: "single dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1251 - optional/dependencies-compatibility.json: "empty dependents" - "empty object" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1252 - optional/dependencies-compatibility.json: "empty dependents" - "object with one property" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1253 - optional/dependencies-compatibility.json: "empty dependents" - "non-object is valid" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1254 - optional/dependencies-compatibility.json: "multiple dependents required" - "neither" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1255 - optional/dependencies-compatibility.json: "multiple dependents required" - "nondependants" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1256 - optional/dependencies-compatibility.json: "multiple dependents required" - "with dependencies" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1257 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "quux": [ 338s # "foo", 338s # "bar" 338s # ] 338s # } 338s # } 338s # data: { 338s # "foo": 1, 338s # "quux": 2 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1258 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing other dependency" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "quux": [ 338s # "foo", 338s # "bar" 338s # ] 338s # } 338s # } 338s # data: { 338s # "bar": 1, 338s # "quux": 2 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1259 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing both dependencies" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "quux": [ 338s # "foo", 338s # "bar" 338s # ] 338s # } 338s # } 338s # data: { 338s # "quux": 1 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1260 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1261 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1262 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF missing dependent" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "foo\nbar": [ 338s # "foo\rbar" 338s # ], 338s # "foo\"bar": [ 338s # "foo'bar" 338s # ] 338s # } 338s # } 338s # data: { 338s # "foo": 2, 338s # "foo\nbar": 1 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1263 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "foo\nbar": [ 338s # "foo\rbar" 338s # ], 338s # "foo\"bar": [ 338s # "foo'bar" 338s # ] 338s # } 338s # } 338s # data: { 338s # "foo\"bar": 2 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1264 - optional/dependencies-compatibility.json: "single schema dependency" - "valid" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1265 - optional/dependencies-compatibility.json: "single schema dependency" - "no dependency" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1266 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "bar": { 338s # "properties": { 338s # "bar": { 338s # "type": "integer" 338s # }, 338s # "foo": { 338s # "type": "integer" 338s # } 338s # } 338s # } 338s # } 338s # } 338s # data: { 338s # "bar": 2, 338s # "foo": "quux" 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1267 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type other" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "bar": { 338s # "properties": { 338s # "bar": { 338s # "type": "integer" 338s # }, 338s # "foo": { 338s # "type": "integer" 338s # } 338s # } 338s # } 338s # } 338s # } 338s # data: { 338s # "bar": "quux", 338s # "foo": 2 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1268 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type both" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "bar": { 338s # "properties": { 338s # "bar": { 338s # "type": "integer" 338s # }, 338s # "foo": { 338s # "type": "integer" 338s # } 338s # } 338s # } 338s # } 338s # } 338s # data: { 338s # "bar": "quux", 338s # "foo": "quux" 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1269 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1270 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1271 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1272 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema true is valid" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1273 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema false is invalid" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "bar": false, 338s # "foo": true 338s # } 338s # } 338s # data: { 338s # "bar": 2 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1274 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with both properties is invalid" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "bar": false, 338s # "foo": true 338s # } 338s # } 338s # data: { 338s # "bar": 2, 338s # "foo": 1 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1275 - optional/dependencies-compatibility.json: "boolean subschemas" - "empty object is valid" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1276 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s ok 1277 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "foo\tbar": { 338s # "minProperties": 4 338s # }, 338s # "foo'bar": { 338s # "required": [ 338s # "foo\"bar" 338s # ] 338s # } 338s # } 338s # } 338s # data: { 338s # "foo'bar": { 338s # "foo\"bar": 1 338s # } 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1278 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "foo\tbar": { 338s # "minProperties": 4 338s # }, 338s # "foo'bar": { 338s # "required": [ 338s # "foo\"bar" 338s # ] 338s # } 338s # } 338s # } 338s # data: { 338s # "a": 2, 338s # "foo\tbar": 1 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1279 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "dependencies": { 338s # "foo\tbar": { 338s # "minProperties": 4 338s # }, 338s # "foo'bar": { 338s # "required": [ 338s # "foo\"bar" 338s # ] 338s # } 338s # } 338s # } 338s # data: { 338s # "foo'bar": 1 338s # } 338s # result: 1 338s 1..1 338s } 338s # 338s ok 1280 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1281 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1282 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1283 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1284 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1285 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1286 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1287 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1288 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s 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" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "pattern": "^\\d$", 338s # "type": "string" 338s # } 338s # data: "߀" 338s # result: 1 338s 1..1 338s } 338s 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" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "pattern": "^\\d$", 338s # "type": "string" 338s # } 338s # data: "߀" 338s # result: 1 338s 1..1 338s } 338s 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" 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false # 338s 1..1 338s } 338s 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" 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected true; got false 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "pattern": "^\\D$", 338s # "type": "string" 338s # } 338s # data: "߀" 338s # result: 0 338s 1..1 338s } 338s 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" 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected true; got false 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "pattern": "^\\D$", 338s # "type": "string" 338s # } 338s # data: "߀" 338s # result: 0 338s 1..1 338s } 338s ok 1294 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true # 338s 1..1 338s } 338s 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" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "pattern": "^\\w$", 338s # "type": "string" 338s # } 338s # data: "é" 338s # result: 1 338s 1..1 338s } 338s 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" 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false # 338s 1..1 338s } 338s 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" 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected true; got false 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "pattern": "^\\W$", 338s # "type": "string" 338s # } 338s # data: "é" 338s # result: 0 338s 1..1 338s } 338s ok 1298 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1299 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1300 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1301 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1302 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1303 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected true; got false 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "pattern": "^\\s$", 338s # "type": "string" 338s # } 338s # data: "" 338s # result: 0 338s 1..1 338s } 338s ok 1304 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1305 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1306 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1307 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1308 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1309 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1310 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1311 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1312 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1313 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s 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" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "pattern": "^\\S$", 338s # "type": "string" 338s # } 338s # data: "" 338s # result: 1 338s 1..1 338s } 338s ok 1315 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1316 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1317 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1318 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1319 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1320 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1321 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1322 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1323 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1324 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s 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" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "pattern": "\\wcole" 338s # } 338s # 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." 338s # result: 1 338s 1..1 338s } 338s 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" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "pattern": "\\wcole" 338s # } 338s # 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." 338s # result: 1 338s 1..1 338s } 338s ok 1327 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1328 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1329 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1330 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1331 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1332 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s 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" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "pattern": "^\\d+$" 338s # } 338s # data: "৪২" 338s # result: 1 338s 1..1 338s } 338s ok 1334 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1335 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1336 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1337 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1338 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1339 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1340 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/L'ÉCOLE", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/L'ÉCOLE", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1341 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s 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" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "additionalProperties": false, 338s # "patternProperties": { 338s # "\\wcole": true 338s # }, 338s # "type": "object" 338s # } 338s # data: { 338s # "l'école": "pas de vraie vie" 338s # } 338s # result: 1 338s 1..1 338s } 338s 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" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "additionalProperties": false, 338s # "patternProperties": { 338s # "\\wcole": true 338s # }, 338s # "type": "object" 338s # } 338s # data: { 338s # "l'école": "pas de vraie vie" 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1344 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/L'ÉCOLE", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/L'ÉCOLE", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1345 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/l'école", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/l'école", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1346 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/l'école", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/l'école", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1347 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1348 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1349 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/-%#", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/-%#", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s 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" 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected false; got true 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "additionalProperties": false, 338s # "patternProperties": { 338s # "^\\d+$": true 338s # }, 338s # "type": "object" 338s # } 338s # data: { 338s # "৪২": "khajit has wares if you have coin" 338s # } 338s # result: 1 338s 1..1 338s } 338s ok 1351 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1352 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/-%#", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "additional property not permitted", 338s # "instanceLocation": "/-%#", 338s # "keywordLocation": "/additionalProperties" 338s # }, 338s # { 338s # "error": "not all additional properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/additionalProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1353 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 1354 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 1355 - optional/id.json: "$id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1356 - optional/id.json: "$id inside an enum is not a real identifier" - "match $ref to $id" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1357 - optional/id.json: "$id inside an enum is not a real identifier" - "no match on enum or $ref to $id" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/$ref/enum" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/id/my_identifier.json#/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 338s # "error": "value does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/$ref/enum" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/id/my_identifier.json#/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 1358 - optional/no-schema.json: "validation without $schema" - "a 3-character string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1359 - optional/no-schema.json: "validation without $schema" - "a 1-character string is not valid" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "length is less than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minLength" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "length is less than 2", 338s # "instanceLocation": "", 338s # "keywordLocation": "/minLength" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1360 - optional/no-schema.json: "validation without $schema" - "a non-string is valid" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s # 338s ok 1361 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1362 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1363 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1364 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1365 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1366 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1367 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "pattern does not match", 338s # "instanceLocation": "", 338s # "keywordLocation": "/pattern" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1368 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1369 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1370 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1371 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/🐲", 338s # "keywordLocation": "/patternProperties/^🐲*$/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/🐲", 338s # "keywordLocation": "/patternProperties/^🐲*$/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1372 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/🐲🐲", 338s # "keywordLocation": "/patternProperties/^🐲*$/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "got string, not integer", 338s # "instanceLocation": "/🐲🐲", 338s # "keywordLocation": "/patternProperties/^🐲*$/type" 338s # }, 338s # { 338s # "error": "not all properties are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/patternProperties" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s ok 1373 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "match" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected true; got false 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "properties": { 338s # "bar": { 338s # "$ref": "#/unknown-keyword" 338s # } 338s # }, 338s # "unknown-keyword": { 338s # "type": "integer" 338s # } 338s # } 338s # data: { 338s # "bar": 3 338s # } 338s # result: null 338s 1..1 338s } 338s ok 1374 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "mismatch" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false # 338s 1..1 338s } 338s ok 1375 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "match" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected true; got false 338s # schema: { 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "properties": { 338s # "bar": { 338s # "$ref": "#/properties/foo/unknown-keyword" 338s # }, 338s # "foo": { 338s # "unknown-keyword": { 338s # "type": "integer" 338s # } 338s # } 338s # } 338s # } 338s # data: { 338s # "bar": 3 338s # } 338s # result: null 338s 1..1 338s } 338s ok 1376 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "mismatch" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "errors": [ 338s # { 338s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 338s # "instanceLocation": "/bar", 338s # "keywordLocation": "/properties/bar/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false # 338s 1..1 338s } 338s ok 1377 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "match" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "/base#/$ref", 338s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "/base#/$ref", 338s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s not ok 1 - evaluation result is incorrect # 338s # Failed test (with amnesty) 'evaluation result is incorrect' 338s # at t/zzz-acceptance-draft2019-09.t line 54. 338s # expected true; got false 338s # schema: { 338s # "$id": "/base", 338s # "$ref": "#/examples/0", 338s # "$schema": "https://json-schema.org/draft/2019-09/schema", 338s # "examples": [ 338s # { 338s # "type": "string" 338s # } 338s # ] 338s # } 338s # data: "a string" 338s # result: null 338s 1..1 338s } 338s ok 1378 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "mismatch" { # TODO Test marked TODO via "todo_tests" 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "/base#/$ref", 338s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "/base#/$ref", 338s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 338s # "instanceLocation": "", 338s # "keywordLocation": "/$ref" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false # 338s 1..1 338s } 338s # 338s 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" { 338s # result: { 338s # "valid": true 338s # } 338s # short-circuited result: { 338s # "valid": true 338s # } 338s ok 1 - test passes: data is valid: true 338s 1..1 338s } 338s ok 1380 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/$ref/not" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/not" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 338s # "error": "got null, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/2/$ref/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/$ref/not" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/not" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 338s # "error": "got null, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/2/$ref/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s ok 1381 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 338s # result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/$ref/not" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/not" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/2/$ref/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s # short-circuited result: { 338s # "errors": [ 338s # { 338s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/0/$ref/not" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 338s # "error": "subschema is valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/1/$ref/not" 338s # }, 338s # { 338s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 338s # "error": "got integer, not string", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf/2/$ref/type" 338s # }, 338s # { 338s # "error": "no subschemas are valid", 338s # "instanceLocation": "", 338s # "keywordLocation": "/anyOf" 338s # } 338s # ], 338s # "valid": false 338s # } 338s ok 1 - test passes: data is valid: false 338s 1..1 338s } 338s # 338s # generated with: Test::JSON::Schema::Acceptance 1.029 338s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 338s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 338s # specification version: draft2019-09 338s # optional tests included: yes 338s # skipping directory: optional/format 338s # 338s # filename pass todo-fail fail 338s # --------------------------------------------------------------- 338s # additionalItems.json 20 0 0 338s # additionalProperties.json 21 0 0 338s # allOf.json 30 0 0 338s # anchor.json 8 0 0 338s # anyOf.json 18 0 0 338s # boolean_schema.json 18 0 0 338s # const.json 50 0 0 338s # contains.json 21 0 0 338s # content.json 18 0 0 338s # default.json 7 0 0 338s # defs.json 2 0 0 338s # dependentRequired.json 20 0 0 338s # dependentSchemas.json 20 0 0 338s # enum.json 45 0 0 338s # exclusiveMaximum.json 4 0 0 338s # exclusiveMinimum.json 4 0 0 338s # format.json 114 0 0 338s # if-then-else.json 26 0 0 338s # infinite-loop-detection.json 2 0 0 338s # items.json 28 0 0 338s # maxContains.json 12 0 0 338s # maxItems.json 6 0 0 338s # maxLength.json 7 0 0 338s # maxProperties.json 10 0 0 338s # maximum.json 8 0 0 338s # minContains.json 28 0 0 338s # minItems.json 6 0 0 338s # minLength.json 7 0 0 338s # minProperties.json 8 0 0 338s # minimum.json 11 0 0 338s # multipleOf.json 10 0 0 338s # not.json 40 0 0 338s # oneOf.json 27 0 0 338s # pattern.json 9 0 0 338s # patternProperties.json 23 0 0 338s # properties.json 28 0 0 338s # propertyNames.json 20 0 0 338s # recursiveRef.json 34 0 0 338s # ref.json 79 0 0 338s # refRemote.json 31 0 0 338s # required.json 16 0 0 338s # type.json 80 0 0 338s # unevaluatedItems.json 55 0 0 338s # unevaluatedProperties.json 122 0 0 338s # uniqueItems.json 69 0 0 338s # vocabulary.json 5 0 0 338s # optional/anchor.json 4 0 0 338s # optional/bignum.json 9 0 0 338s # optional/cross-draft.json 3 0 0 338s # optional/dependencies-compatibility.json 22 14 0 338s # optional/ecmascript-regex.json 60 14 0 338s # optional/float-overflow.json 1 0 0 338s # optional/id.json 3 0 0 338s # optional/no-schema.json 3 0 0 338s # optional/non-bmp-regex.json 12 0 0 338s # optional/refOfUnknownKeyword.json 3 3 0 338s # optional/unknownKeyword.json 3 0 0 338s # --------------------------------------------------------------- 338s # TOTAL 1350 31 0 338s # 338s # Congratulations, all non-optional tests are passing! 338s # 338s ok 1382 - no leaks in the main evaluator object 338s ok 1383 - no leaks in the short-circuiting evaluator object 338s 1..1383 338s ok 344s t/zzz-acceptance-draft2020-12-format.t .. 344s # 344s # AUTHOR_TESTING: 344s # AUTOMATED_TESTING: 1 344s # EXTENDED_TESTING: 344s # NO_TODO: 344s # TEST_DIR: 344s # NO_SHORT_CIRCUIT: 344s # 344s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2020-12/optional/format against draft2020-12... 344s # 344s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date-time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s # 344s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 32 - date.json: "validation of date strings" - "a valid date string" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 64 - date.json: "validation of date strings" - "invalid month" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid date string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s # 344s ok 73 - duration.json: "validation of duration strings" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 74 - duration.json: "validation of duration strings" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 75 - duration.json: "validation of duration strings" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 76 - duration.json: "validation of duration strings" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 77 - duration.json: "validation of duration strings" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 78 - duration.json: "validation of duration strings" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 79 - duration.json: "validation of duration strings" - "a valid duration string" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 80 - duration.json: "validation of duration strings" - "an invalid duration string" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 81 - duration.json: "validation of duration strings" - "must start with P" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 82 - duration.json: "validation of duration strings" - "no elements present" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 83 - duration.json: "validation of duration strings" - "no time elements present" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 84 - duration.json: "validation of duration strings" - "no date or time elements present" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 85 - duration.json: "validation of duration strings" - "elements out of order" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 86 - duration.json: "validation of duration strings" - "missing time separator" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 87 - duration.json: "validation of duration strings" - "time element in the date position" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 88 - duration.json: "validation of duration strings" - "four years duration" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 89 - duration.json: "validation of duration strings" - "zero time, in seconds" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 90 - duration.json: "validation of duration strings" - "zero time, in days" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 91 - duration.json: "validation of duration strings" - "one month duration" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 92 - duration.json: "validation of duration strings" - "one minute duration" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 93 - duration.json: "validation of duration strings" - "one and a half days, in hours" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 94 - duration.json: "validation of duration strings" - "one and a half days, in days and hours" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 95 - duration.json: "validation of duration strings" - "two weeks" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 96 - duration.json: "validation of duration strings" - "weeks cannot be combined with other units" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 97 - duration.json: "validation of duration strings" - "invalid non-ASCII '২' (a Bengali 2)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 98 - duration.json: "validation of duration strings" - "element without unit" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid duration string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s # 344s 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" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "regex" 344s # } 344s # data: "\\a" 344s # result: 1 344s 1..1 344s } 344s # 344s ok 100 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 101 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 102 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 103 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 104 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 105 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 106 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 107 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid email string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid email string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 108 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 109 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 110 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 111 - email.json: "validation of e-mail addresses" - "a quoted string with a space in the local part is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 112 - email.json: "validation of e-mail addresses" - "a quoted string with a double dot in the local part is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 113 - email.json: "validation of e-mail addresses" - "a quoted string with a @ in the local part is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 114 - email.json: "validation of e-mail addresses" - "an IPv4-address-literal after the @ is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 115 - email.json: "validation of e-mail addresses" - "an IPv6-address-literal after the @ is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 116 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid email string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid email string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 117 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid email string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid email string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 118 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 119 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid email string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid email string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 120 - email.json: "validation of e-mail addresses" - "an invalid domain" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "email" 344s # } 344s # data: "joe.bloggs@invalid=domain.com" 344s # result: 1 344s 1..1 344s } 344s ok 121 - email.json: "validation of e-mail addresses" - "an invalid IPv4-address-literal" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "email" 344s # } 344s # data: "joe.bloggs@[127.0.0.300]" 344s # result: 1 344s 1..1 344s } 344s # 344s ok 122 - hostname.json: "validation of host names" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 123 - hostname.json: "validation of host names" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 124 - hostname.json: "validation of host names" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 125 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 126 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 127 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 128 - hostname.json: "validation of host names" - "a valid host name" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 129 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 130 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 131 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 132 - hostname.json: "validation of host names" - "a host name with a component too long" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 133 - hostname.json: "validation of host names" - "starts with hyphen" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 134 - hostname.json: "validation of host names" - "ends with hyphen" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 135 - hostname.json: "validation of host names" - "starts with underscore" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 136 - hostname.json: "validation of host names" - "ends with underscore" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 137 - hostname.json: "validation of host names" - "contains underscore" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 138 - hostname.json: "validation of host names" - "maximum label length" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 139 - hostname.json: "validation of host names" - "exceeds maximum label length" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 140 - hostname.json: "validation of host names" - "single label" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 141 - hostname.json: "validation of host names" - "single label with hyphen" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 142 - hostname.json: "validation of host names" - "single label with digits" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 143 - hostname.json: "validation of host names" - "single label starting with digit" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 144 - hostname.json: "validation of host names" - "single label ending with digit" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 145 - hostname.json: "validation of host names" - "empty string" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 146 - hostname.json: "validation of host names" - "single dot" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s # 344s ok 147 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 148 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 149 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 150 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 151 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 152 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 153 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 154 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-email string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-email string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 155 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 156 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-email string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-email string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s # 344s ok 157 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 158 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 159 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 160 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 161 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 162 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s 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" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s 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" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s 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" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "실〮례.테스트" 344s # result: 1 344s 1..1 344s } 344s 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" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s ok 167 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s ok 168 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 169 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "xn--X" 344s # result: 1 344s 1..1 344s } 344s 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" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "XN--aa---o47jg78q" 344s # result: 1 344s 1..1 344s } 344s ok 171 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s ok 172 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s 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" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s ok 174 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s ok 175 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s ok 176 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s 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" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s 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" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s 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" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "ـߺ" 344s # result: 1 344s 1..1 344s } 344s 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" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "〱〲〳〴〵〮〯〻" 344s # result: 1 344s 1..1 344s } 344s ok 181 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "a·l" 344s # result: 1 344s 1..1 344s } 344s ok 182 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "·l" 344s # result: 1 344s 1..1 344s } 344s ok 183 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "l·a" 344s # result: 1 344s 1..1 344s } 344s ok 184 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "l·" 344s # result: 1 344s 1..1 344s } 344s ok 185 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 186 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "α͵S" 344s # result: 1 344s 1..1 344s } 344s ok 187 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "α͵" 344s # result: 1 344s 1..1 344s } 344s ok 188 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 189 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s ok 190 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "׳ב" 344s # result: 1 344s 1..1 344s } 344s ok 191 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 192 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s ok 193 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "״ב" 344s # result: 1 344s 1..1 344s } 344s ok 194 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s 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" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "def・abc" 344s # result: 1 344s 1..1 344s } 344s ok 196 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "idn-hostname" 344s # } 344s # data: "・" 344s # result: 1 344s 1..1 344s } 344s ok 197 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 198 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 199 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s 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" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s 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" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s 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" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 203 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s ok 204 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s ok 205 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 206 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s 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" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 208 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 209 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 210 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 211 - idn-hostname.json: "validation of internationalized host names" - "single label starting with digit" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 212 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 213 - idn-hostname.json: "validation of internationalized host names" - "empty string" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false # 344s 1..1 344s } 344s ok 214 - idn-hostname.json: "validation of separators in internationalized host names" - "single dot" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 215 - idn-hostname.json: "validation of separators in internationalized host names" - "single ideographic full stop" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 216 - idn-hostname.json: "validation of separators in internationalized host names" - "single fullwidth full stop" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 217 - idn-hostname.json: "validation of separators in internationalized host names" - "single halfwidth ideographic full stop" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid idn-hostname string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 218 - idn-hostname.json: "validation of separators in internationalized host names" - "dot as label separator" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 219 - idn-hostname.json: "validation of separators in internationalized host names" - "ideographic full stop as label separator" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 220 - idn-hostname.json: "validation of separators in internationalized host names" - "fullwidth full stop as label separator" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 221 - idn-hostname.json: "validation of separators in internationalized host names" - "halfwidth ideographic full stop as label separator" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s # 344s ok 222 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 223 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 224 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 225 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 226 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 227 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 228 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 229 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 230 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 231 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 232 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 233 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 234 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 235 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 236 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 237 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv4 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s # 344s ok 238 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 239 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 240 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 241 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 242 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 243 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 244 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 245 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 246 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 247 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 248 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 249 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 250 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 251 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 252 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 253 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 254 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 255 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 256 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 257 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 258 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 259 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 260 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 261 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 262 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 263 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 264 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 265 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 266 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 267 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 268 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 269 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 270 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 271 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 272 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 273 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 274 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 275 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 276 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 277 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid ipv6 string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s # 344s ok 278 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 279 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 280 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 281 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 282 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 283 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 284 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 285 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 286 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 287 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "iri-reference" 344s # } 344s # data: "\\\\WINDOWS\\filëßåré" 344s # result: 1 344s 1..1 344s } 344s ok 288 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 289 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 290 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "iri-reference" 344s # } 344s # data: "#ƒräg\\mênt" 344s # result: 1 344s 1..1 344s } 344s # 344s ok 291 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 292 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 293 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 294 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 295 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 296 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 297 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 298 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 299 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 300 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 301 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 302 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "iri" 344s # } 344s # data: "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334" 344s # result: 1 344s 1..1 344s } 344s ok 303 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid iri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid iri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 304 - iri.json: "validation of IRIs" - "an invalid IRI" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid iri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid iri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 305 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid iri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid iri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s # 344s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 308 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 309 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 310 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 311 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 312 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 313 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 314 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 315 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 316 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 317 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 318 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 319 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 320 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 321 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 322 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 323 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 324 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 325 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 326 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 327 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 328 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 329 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 330 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 331 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 332 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 333 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 334 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 335 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 336 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 337 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 338 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 339 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 340 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 341 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 342 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 343 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s # 344s ok 344 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 345 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 346 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 347 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 348 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 349 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 350 - regex.json: "validation of regular expressions" - "a valid regular expression" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 351 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid regex string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid regex string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s # 344s ok 352 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 353 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 354 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 355 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 356 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 357 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 358 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 359 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 360 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 361 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 362 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 363 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 364 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 365 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 366 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 367 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 368 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid relative-json-pointer string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 369 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s # 344s ok 370 - time.json: "validation of time strings" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 371 - time.json: "validation of time strings" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 372 - time.json: "validation of time strings" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 373 - time.json: "validation of time strings" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 374 - time.json: "validation of time strings" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 375 - time.json: "validation of time strings" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 376 - time.json: "validation of time strings" - "a valid time string" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 377 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 378 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 379 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 380 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 381 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 382 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 383 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 384 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 385 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 386 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 387 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 388 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 389 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 390 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 391 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 392 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 393 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 394 - time.json: "validation of time strings" - "a valid time string with second fraction" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 395 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 396 - time.json: "validation of time strings" - "a valid time string with plus offset" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 397 - time.json: "validation of time strings" - "a valid time string with minus offset" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 398 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 399 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 400 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 401 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 402 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 403 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 404 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 405 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 406 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 407 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 408 - time.json: "validation of time strings" - "an invalid offset indicator" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 409 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 410 - time.json: "validation of time strings" - "no time offset" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 411 - time.json: "validation of time strings" - "no time offset with second fraction" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 412 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 413 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 414 - time.json: "validation of time strings" - "contains letters" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid time string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s # 344s ok 415 - unknown.json: "unknown format" - "unknown formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 416 - unknown.json: "unknown format" - "unknown formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 417 - unknown.json: "unknown format" - "unknown formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 418 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 419 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 420 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 421 - unknown.json: "unknown format" - "unknown formats ignore strings" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s # 344s ok 422 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 423 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 424 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 425 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 426 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 427 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 428 - uri-reference.json: "validation of URI References" - "a valid URI" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 429 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 430 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 431 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri-reference string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri-reference string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 432 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 433 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 434 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri-reference string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri-reference string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s # 344s ok 435 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 436 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 437 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 438 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 439 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 440 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 441 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 442 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "uri-template" 344s # } 344s # data: "http://example.com/dictionary/{term:1}/{term" 344s # result: 1 344s 1..1 344s } 344s ok 443 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s ok 444 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true # 344s 1..1 344s } 344s # 344s ok 445 - uri.json: "validation of URIs" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 446 - uri.json: "validation of URIs" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 447 - uri.json: "validation of URIs" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 448 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 449 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 450 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 451 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 452 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 453 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 454 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 455 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 456 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 457 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 458 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 459 - uri.json: "validation of URIs" - "a valid URL " { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 460 - uri.json: "validation of URIs" - "a valid mailto URI" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 461 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 462 - uri.json: "validation of URIs" - "a valid tel URI" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 463 - uri.json: "validation of URIs" - "a valid URN" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 464 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 465 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 466 - uri.json: "validation of URIs" - "an invalid URI" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 467 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 468 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 469 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uri string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 470 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s not ok 1 - evaluation result is incorrect # 344s # Failed test (with amnesty) 'evaluation result is incorrect' 344s # at t/zzz-acceptance-draft2020-12-format.t line 70. 344s # expected false; got true 344s # schema: { 344s # "$schema": "https://json-schema.org/draft/2020-12/schema", 344s # "format": "uri" 344s # } 344s # data: "bar,baz:foo" 344s # result: 1 344s 1..1 344s } 344s # 344s ok 471 - uuid.json: "uuid format" - "all string formats ignore integers" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 472 - uuid.json: "uuid format" - "all string formats ignore floats" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 473 - uuid.json: "uuid format" - "all string formats ignore objects" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 474 - uuid.json: "uuid format" - "all string formats ignore arrays" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 475 - uuid.json: "uuid format" - "all string formats ignore booleans" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 476 - uuid.json: "uuid format" - "all string formats ignore nulls" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 477 - uuid.json: "uuid format" - "all upper-case" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 478 - uuid.json: "uuid format" - "all lower-case" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 479 - uuid.json: "uuid format" - "mixed case" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 480 - uuid.json: "uuid format" - "all zeroes is valid" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 481 - uuid.json: "uuid format" - "wrong length" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 482 - uuid.json: "uuid format" - "missing section" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 483 - uuid.json: "uuid format" - "bad characters (not hex)" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 484 - uuid.json: "uuid format" - "no dashes" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 485 - uuid.json: "uuid format" - "too few dashes" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 486 - uuid.json: "uuid format" - "too many dashes" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 487 - uuid.json: "uuid format" - "dashes in the wrong spot" { 344s # result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s # short-circuited result: { 344s # "errors": [ 344s # { 344s # "error": "not a valid uuid string", 344s # "instanceLocation": "", 344s # "keywordLocation": "/format" 344s # } 344s # ], 344s # "valid": false 344s # } 344s ok 1 - test passes: data is valid: false 344s 1..1 344s } 344s ok 488 - uuid.json: "uuid format" - "valid version 4" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 489 - uuid.json: "uuid format" - "valid version 5" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 490 - uuid.json: "uuid format" - "hypothetical version 6" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s ok 491 - uuid.json: "uuid format" - "hypothetical version 15" { 344s # result: { 344s # "valid": true 344s # } 344s # short-circuited result: { 344s # "valid": true 344s # } 344s ok 1 - test passes: data is valid: true 344s 1..1 344s } 344s # 344s # generated with: Test::JSON::Schema::Acceptance 1.029 344s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 344s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 344s # specification version: draft2020-12 344s # using custom test directory: /optional/format 344s # optional tests included: yes 344s # 344s # filename pass todo-fail fail 344s # --------------------------------------------------------------- 344s # date-time.json 25 0 0 344s # date.json 47 0 0 344s # duration.json 26 0 0 344s # ecmascript-regex.json 0 1 0 344s # email.json 20 2 0 344s # hostname.json 25 0 0 344s # idn-email.json 10 0 0 344s # idn-hostname.json 50 15 0 344s # ipv4.json 16 0 0 344s # ipv6.json 40 0 0 344s # iri-reference.json 11 2 0 344s # iri.json 14 1 0 344s # json-pointer.json 38 0 0 344s # regex.json 8 0 0 344s # relative-json-pointer.json 18 0 0 344s # time.json 45 0 0 344s # unknown.json 7 0 0 344s # uri-reference.json 13 0 0 344s # uri-template.json 9 1 0 344s # uri.json 25 1 0 344s # uuid.json 21 0 0 344s # --------------------------------------------------------------- 344s # TOTAL 468 23 0 344s # 344s # Congratulations, all non-optional tests are passing! 344s # 344s ok 492 - no leaks in the main evaluator object 344s ok 493 - no leaks in the short-circuiting evaluator object 344s 1..493 344s ok 368s t/zzz-acceptance-draft2020-12.t ......... 368s # 368s # AUTHOR_TESTING: 368s # AUTOMATED_TESTING: 1 368s # EXTENDED_TESTING: 368s # NO_TODO: 368s # TEST_DIR: 368s # NO_SHORT_CIRCUIT: 368s # 368s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 368s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2020-12 against draft2020-12... 368s # 368s ok 1 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 2 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/quux", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/quux", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 3 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 4 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 5 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 6 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 7 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 8 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/élmény", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/élmény", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 9 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 10 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 11 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not boolean", 368s # "instanceLocation": "/quux", 368s # "keywordLocation": "/additionalProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not boolean", 368s # "instanceLocation": "/quux", 368s # "keywordLocation": "/additionalProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 12 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 13 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not boolean", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/additionalProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not boolean", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/additionalProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 14 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 15 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not boolean", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/additionalProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not boolean", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/additionalProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 16 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 17 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against both keywords" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 18 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against propertyNames, but not additionalProperties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/pear", 368s # "keywordLocation": "/additionalProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/pear", 368s # "keywordLocation": "/additionalProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 19 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties doesn't consider dependentSchemas" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 20 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 21 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar even when foo2 is present" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 22 - allOf.json: "allOf" - "allOf" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 23 - allOf.json: "allOf" - "mismatch second" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/required" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/required" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 24 - allOf.json: "allOf" - "mismatch first" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/required" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/required" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 25 - allOf.json: "allOf" - "wrong type" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/0/properties/bar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/properties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/0/properties/bar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/properties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 26 - allOf.json: "allOf with base schema" - "valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 27 - allOf.json: "allOf with base schema" - "mismatch base schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 28 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/required" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/required" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 29 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: baz", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/required" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: baz", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/required" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 30 - allOf.json: "allOf with base schema" - "mismatch both" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/required" 368s # }, 368s # { 368s # "error": "object is missing property: baz", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/required" 368s # }, 368s # { 368s # "error": "subschemas 0, 1 are not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/required" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 31 - allOf.json: "allOf simple types" - "valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 32 - allOf.json: "allOf simple types" - "mismatch one" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than 30", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/maximum" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than 30", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/maximum" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 33 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 34 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 35 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0" 368s # }, 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1" 368s # }, 368s # { 368s # "error": "subschemas 0, 1 are not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 36 - allOf.json: "allOf with one empty schema" - "any data is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 37 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 38 - allOf.json: "allOf with the first empty schema" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 39 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/type" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/type" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 40 - allOf.json: "allOf with the last empty schema" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 41 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/type" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/type" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 42 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 43 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/allOf/0/type" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/allOf" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/allOf/0/type" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/allOf" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 44 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # }, 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # }, 368s # { 368s # "error": "value is not a multiple of 5", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 45 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # }, 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 46 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # }, 368s # { 368s # "error": "value is not a multiple of 5", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 47 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 48 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # }, 368s # { 368s # "error": "value is not a multiple of 5", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 49 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 50 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 5", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 5", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/multipleOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 51 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 52 - anchor.json: "Location-independent identifier" - "match" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 53 - anchor.json: "Location-independent identifier" - "mismatch" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/A/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/A/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 54 - anchor.json: "Location-independent identifier with absolute URI" - "match" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 55 - anchor.json: "Location-independent identifier with absolute URI" - "mismatch" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/bar#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/bar#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 56 - anchor.json: "Location-independent identifier with base URI change in subschema" - "match" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 57 - anchor.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested.json#/$defs/B/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested.json#/$defs/B/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 58 - anchor.json: "same $anchor with different base uri" - "$ref resolves to /$defs/A/allOf/1" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 59 - anchor.json: "same $anchor with different base uri" - "$ref does not resolve to /$defs/A/allOf/0" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/child1#/allOf/1/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/child1#/allOf/1/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 60 - anyOf.json: "anyOf" - "first anyOf valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 61 - anyOf.json: "anyOf" - "second anyOf valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 62 - anyOf.json: "anyOf" - "both anyOf valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 63 - anyOf.json: "anyOf" - "neither anyOf valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/type" 368s # }, 368s # { 368s # "error": "value is less than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/minimum" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/type" 368s # }, 368s # { 368s # "error": "value is less than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/minimum" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 64 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 65 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 66 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "length is greater than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/maxLength" 368s # }, 368s # { 368s # "error": "length is less than 4", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/minLength" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "length is greater than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/maxLength" 368s # }, 368s # { 368s # "error": "length is less than 4", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/minLength" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 67 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 68 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 69 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0" 368s # }, 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0" 368s # }, 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 70 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 71 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 72 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 73 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/anyOf/0/properties/bar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/properties" 368s # }, 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/anyOf/1/properties/foo/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/properties" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/anyOf/0/properties/bar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/properties" 368s # }, 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/anyOf/1/properties/foo/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/properties" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 74 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 75 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 76 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 77 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/anyOf/0/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/anyOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/anyOf/0/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/anyOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 78 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 79 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 80 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 81 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 82 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 83 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 84 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 85 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 86 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 87 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 88 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 89 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 90 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 91 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 92 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 93 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 94 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 95 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 96 - const.json: "const validation" - "same value is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 97 - const.json: "const validation" - "another value is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 98 - const.json: "const validation" - "another type is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 99 - const.json: "const with object" - "same object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 100 - const.json: "const with object" - "same object with different property order is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 101 - const.json: "const with object" - "another object is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 102 - const.json: "const with object" - "another type is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 103 - const.json: "const with array" - "same array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 104 - const.json: "const with array" - "another array item is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/0': wrong type: integer vs object)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/0': wrong type: integer vs object)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 105 - const.json: "const with array" - "array with additional items is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 106 - const.json: "const with null" - "null is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 107 - const.json: "const with null" - "not null is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 108 - const.json: "const with false does not match 0" - "false is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 109 - const.json: "const with false does not match 0" - "integer zero is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 110 - const.json: "const with false does not match 0" - "float zero is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 111 - const.json: "const with true does not match 1" - "true is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 112 - const.json: "const with true does not match 1" - "integer one is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 113 - const.json: "const with true does not match 1" - "float one is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 114 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 115 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 116 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 117 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 118 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 119 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 120 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 121 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 122 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 123 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 124 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 125 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 126 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 127 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 128 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 129 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 130 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 131 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 132 - const.json: "const with 1 does not match true" - "true is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 133 - const.json: "const with 1 does not match true" - "integer one is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 134 - const.json: "const with 1 does not match true" - "float one is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 135 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 136 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 137 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 138 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 139 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 140 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 141 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 142 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 143 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 144 - const.json: "nul characters in strings" - "match string with nul" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 145 - const.json: "nul characters in strings" - "do not match string lacking nul" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/const" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 146 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 147 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 148 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 149 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than 5", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/contains/minimum" 368s # }, 368s # { 368s # "error": "value is less than 5", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/contains/minimum" 368s # }, 368s # { 368s # "error": "value is less than 5", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/contains/minimum" 368s # }, 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than 5", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/contains/minimum" 368s # }, 368s # { 368s # "error": "value is less than 5", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/contains/minimum" 368s # }, 368s # { 368s # "error": "value is less than 5", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/contains/minimum" 368s # }, 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 150 - contains.json: "contains keyword validation" - "empty array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 151 - contains.json: "contains keyword validation" - "not array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 152 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 153 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 154 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/contains/const" 368s # }, 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/contains/const" 368s # }, 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/contains/const" 368s # }, 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/contains/const" 368s # }, 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/contains/const" 368s # }, 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/contains/const" 368s # }, 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/contains/const" 368s # }, 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/contains/const" 368s # }, 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 155 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 156 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 157 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/contains" 368s # }, 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/contains" 368s # }, 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 158 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 159 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 160 - contains.json: "items + contains" - "matches items, does not match contains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/contains/multipleOf" 368s # }, 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/contains/multipleOf" 368s # }, 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/contains/multipleOf" 368s # }, 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/contains/multipleOf" 368s # }, 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/contains/multipleOf" 368s # }, 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/contains/multipleOf" 368s # }, 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 161 - contains.json: "items + contains" - "does not match items, matches contains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/multipleOf" 368s # }, 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/items/multipleOf" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/multipleOf" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 162 - contains.json: "items + contains" - "matches both items and contains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 163 - contains.json: "items + contains" - "matches neither items nor contains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/multipleOf" 368s # }, 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/multipleOf" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/contains/multipleOf" 368s # }, 368s # { 368s # "error": "value is not a multiple of 3", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/contains/multipleOf" 368s # }, 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/multipleOf" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 164 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 165 - contains.json: "contains with false if subschema" - "empty array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 166 - contains.json: "contains with null instance elements" - "allows null items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 167 - content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 168 - content.json: "validation of string-encoded content based on media type" - "an invalid JSON document; validates true" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 169 - content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 170 - content.json: "validation of binary string-encoding" - "a valid base64 string" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 171 - content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character); validates true" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 172 - content.json: "validation of binary string-encoding" - "ignores non-strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 173 - content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 174 - content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document; validates true" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 175 - content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON; validates true" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 176 - content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 177 - content.json: "validation of binary-encoded media type documents with schema" - "a valid base64-encoded JSON document" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 178 - content.json: "validation of binary-encoded media type documents with schema" - "another valid base64-encoded JSON document" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 179 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64-encoded JSON document; validates true" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 180 - content.json: "validation of binary-encoded media type documents with schema" - "an empty object as a base64-encoded JSON document; validates true" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 181 - content.json: "validation of binary-encoded media type documents with schema" - "an empty array as a base64-encoded JSON document" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 182 - content.json: "validation of binary-encoded media type documents with schema" - "a validly-encoded invalid JSON document; validates true" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 183 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64 string that is valid JSON; validates true" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 184 - content.json: "validation of binary-encoded media type documents with schema" - "ignores non-strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 185 - default.json: "invalid type for default" - "valid when property is specified" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 186 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 187 - default.json: "invalid string value for default" - "valid when property is specified" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 188 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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)" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than 3", 368s # "instanceLocation": "/alpha", 368s # "keywordLocation": "/properties/alpha/maximum" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than 3", 368s # "instanceLocation": "/alpha", 368s # "keywordLocation": "/properties/alpha/maximum" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 192 - defs.json: "validate definition against metaschema" - "valid definition schema" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 193 - defs.json: "validate definition against metaschema" - "invalid definition schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/simpleTypes/enum", 368s # "error": "value does not match", 368s # "instanceLocation": "/$defs/foo/type", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/0/$ref/enum" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf/1/type", 368s # "error": "got integer, not array", 368s # "instanceLocation": "/$defs/foo/type", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/1/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf", 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "/$defs/foo/type", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/$defs/foo", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 368s # "error": "subschema 3 is not valid", 368s # "instanceLocation": "/$defs/foo", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties/$defs/additionalProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/$defs", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/simpleTypes/enum", 368s # "error": "value does not match", 368s # "instanceLocation": "/$defs/foo/type", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/0/$ref/enum" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf/1/type", 368s # "error": "got integer, not array", 368s # "instanceLocation": "/$defs/foo/type", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/1/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf", 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "/$defs/foo/type", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/$defs/foo", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 368s # "error": "subschema 3 is not valid", 368s # "instanceLocation": "/$defs/foo", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties/$defs/additionalProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/$defs", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 194 - dependentRequired.json: "single dependency" - "neither" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 195 - dependentRequired.json: "single dependency" - "nondependant" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 196 - dependentRequired.json: "single dependency" - "with dependency" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 197 - dependentRequired.json: "single dependency" - "missing dependency" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired/bar" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired/bar" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 198 - dependentRequired.json: "single dependency" - "ignores arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 199 - dependentRequired.json: "single dependency" - "ignores strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 200 - dependentRequired.json: "single dependency" - "ignores other non-objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 201 - dependentRequired.json: "empty dependents" - "empty object" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 202 - dependentRequired.json: "empty dependents" - "object with one property" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 203 - dependentRequired.json: "empty dependents" - "non-object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 204 - dependentRequired.json: "multiple dependents required" - "neither" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 205 - dependentRequired.json: "multiple dependents required" - "nondependants" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 206 - dependentRequired.json: "multiple dependents required" - "with dependencies" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 207 - dependentRequired.json: "multiple dependents required" - "missing dependency" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired/quux" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired/quux" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 208 - dependentRequired.json: "multiple dependents required" - "missing other dependency" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired/quux" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired/quux" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 209 - dependentRequired.json: "multiple dependents required" - "missing both dependencies" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing properties: foo, bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired/quux" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing properties: foo, bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired/quux" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 210 - dependentRequired.json: "dependencies with escaped characters" - "CRLF" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 211 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 212 - dependentRequired.json: "dependencies with escaped characters" - "CRLF missing dependent" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo\rbar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired/foo\nbar" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo\rbar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired/foo\nbar" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 213 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo'bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired/foo\"bar" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo'bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired/foo\"bar" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentRequired" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 214 - dependentSchemas.json: "single dependency" - "valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 215 - dependentSchemas.json: "single dependency" - "no dependency" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 216 - dependentSchemas.json: "single dependency" - "wrong type" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/bar/properties" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/bar/properties" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 217 - dependentSchemas.json: "single dependency" - "wrong type other" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/bar/properties" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/bar/properties" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 218 - dependentSchemas.json: "single dependency" - "wrong type both" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 368s # }, 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/bar/properties" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/bar/properties" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 219 - dependentSchemas.json: "single dependency" - "ignores arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 220 - dependentSchemas.json: "single dependency" - "ignores strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 221 - dependentSchemas.json: "single dependency" - "ignores other non-objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 222 - dependentSchemas.json: "boolean subschemas" - "object with property having schema true is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 223 - dependentSchemas.json: "boolean subschemas" - "object with property having schema false is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/bar" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/bar" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 224 - dependentSchemas.json: "boolean subschemas" - "object with both properties is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/bar" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/bar" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 225 - dependentSchemas.json: "boolean subschemas" - "empty object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 226 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 227 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo\"bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/foo'bar/required" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo\"bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/foo'bar/required" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 228 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab invalid under dependent schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object has fewer than 4 properties", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object has fewer than 4 properties", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 229 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote invalid under dependent schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo\"bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/foo'bar/required" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo\"bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/foo'bar/required" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 230 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches root" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 231 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches dependency" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 232 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches both" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 368s # }, 368s # { 368s # "error": "not all dependencies are satisfied", 368s # "instanceLocation": "", 368s # "keywordLocation": "/dependentSchemas" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 233 - dependentSchemas.json: "dependent subschema incompatible with root" - "no dependency" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s 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" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/$defs/foo/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/$defs/foo/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/$defs/foo/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/$defs/foo/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/$defs/foo/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/$defs/foo/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/root#/$defs/foo/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/$ref/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/list#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/root#/$defs/foo/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/$ref/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/list#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 242 - dynamicRef.json: "A $dynamicRef without anchor in fragment behaves identical to $ref" - "An array of strings is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/$ref/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/$ref/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/$ref/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 243 - dynamicRef.json: "A $dynamicRef without anchor in fragment behaves identical to $ref" - "An array of numbers is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/root#/$defs/foo/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/$ref/$ref/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/list#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/root#/$defs/foo/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/$ref/$ref/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/list#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 246 - dynamicRef.json: "An $anchor with the same name as a $dynamicAnchor is not used for dynamic scope resolution" - "Any array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties/foo/const", 368s # "error": "value does not match", 368s # "instanceLocation": "/bar/baz/foo", 368s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties/foo/const" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/bar/baz", 368s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/bar#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/$ref/properties/bar/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/extended#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties/foo/const", 368s # "error": "value does not match", 368s # "instanceLocation": "/bar/baz/foo", 368s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties/foo/const" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/bar/baz", 368s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/bar#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/$ref/properties/bar/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/extended#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 252 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "number list with number values" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 253 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "number list with string values" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/numberList#/$defs/itemType/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "/list/0", 368s # "keywordLocation": "/then/$ref/$ref/properties/list/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/list", 368s # "keywordLocation": "/then/$ref/$ref/properties/list/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/$ref/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/then", 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/numberList#/$defs/itemType/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "/list/0", 368s # "keywordLocation": "/then/$ref/$ref/properties/list/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/list", 368s # "keywordLocation": "/then/$ref/$ref/properties/list/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/$ref/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/then", 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 254 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "string list with number values" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/stringList#/$defs/itemType/type", 368s # "error": "got number, not string", 368s # "instanceLocation": "/list/0", 368s # "keywordLocation": "/else/$ref/$ref/properties/list/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/list", 368s # "keywordLocation": "/else/$ref/$ref/properties/list/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else/$ref/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/else", 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/stringList#/$defs/itemType/type", 368s # "error": "got number, not string", 368s # "instanceLocation": "/list/0", 368s # "keywordLocation": "/else/$ref/$ref/properties/list/items/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/list", 368s # "keywordLocation": "/else/$ref/$ref/properties/list/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else/$ref/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/else", 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 255 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "string list with string values" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 368s # "error": "got string, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/$ref/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 368s # "error": "got string, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/$ref/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 368s # "error": "got integer, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/$ref/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 368s # "error": "got integer, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/$ref/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 259 - dynamicRef.json: "strict-tree schema, guards against misspelled properties" - "instance with misspelled field" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/children/0/daat", 368s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/children/0", 368s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties/children/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/children", 368s # "keywordLocation": "/$ref/properties/children/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/children", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/children/0/daat", 368s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/children/0", 368s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties/children/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/children", 368s # "keywordLocation": "/$ref/properties/children/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/children", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 260 - dynamicRef.json: "strict-tree schema, guards against misspelled properties" - "instance with correct field" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 261 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "incorrect parent schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 368s # "error": "object is missing property: elements", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/a", 368s # "keywordLocation": "/$ref/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 368s # "error": "object is missing property: elements", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 262 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "incorrect extended schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/required", 368s # "error": "object is missing property: a", 368s # "instanceLocation": "/elements/0", 368s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/additionalProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/elements/0/b", 368s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/additionalProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/elements/0", 368s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/elements", 368s # "keywordLocation": "/$ref/properties/elements/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/required", 368s # "error": "object is missing property: a", 368s # "instanceLocation": "/elements/0", 368s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/elements", 368s # "keywordLocation": "/$ref/properties/elements/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 263 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "correct extended schema" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 264 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "incorrect parent schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 368s # "error": "object is missing property: elements", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/$ref/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/a", 368s # "keywordLocation": "/allOf/0/$ref/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/$ref/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 368s # "error": "object is missing property: elements", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/$ref/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 265 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "incorrect extended schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/required", 368s # "error": "object is missing property: a", 368s # "instanceLocation": "/elements/0", 368s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/additionalProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/elements/0/b", 368s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/additionalProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/elements/0", 368s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/elements", 368s # "keywordLocation": "/allOf/0/$ref/properties/elements/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/required", 368s # "error": "object is missing property: a", 368s # "instanceLocation": "/elements/0", 368s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/elements", 368s # "keywordLocation": "/allOf/0/$ref/properties/elements/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 266 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "correct extended schema" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 267 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "incorrect parent schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 368s # "error": "object is missing property: elements", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/$ref/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/a", 368s # "keywordLocation": "/allOf/1/$ref/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/$ref/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 368s # "error": "object is missing property: elements", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/$ref/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 268 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "incorrect extended schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/required", 368s # "error": "object is missing property: a", 368s # "instanceLocation": "/elements/0", 368s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/additionalProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/elements/0/b", 368s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/additionalProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/elements/0", 368s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/elements", 368s # "keywordLocation": "/allOf/1/$ref/properties/elements/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/required", 368s # "error": "object is missing property: a", 368s # "instanceLocation": "/elements/0", 368s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/elements", 368s # "keywordLocation": "/allOf/1/$ref/properties/elements/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 269 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "correct extended schema" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 270 - dynamicRef.json: "$ref to $dynamicRef finds detached $dynamicAnchor" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 271 - dynamicRef.json: "$ref to $dynamicRef finds detached $dynamicAnchor" - "non-number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-dynamicref.json#/$defs/detached/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$dynamicRef/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-dynamicref.json#/$defs/detached/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$dynamicRef/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 272 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a true schema" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 273 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a false schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/false", 368s # "error": "subschema is false", 368s # "instanceLocation": "/false", 368s # "keywordLocation": "/properties/false/$dynamicRef" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/false", 368s # "error": "subschema is false", 368s # "instanceLocation": "/false", 368s # "keywordLocation": "/properties/false/$dynamicRef" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 274 - dynamicRef.json: "$dynamicRef skips over intermediate resources - direct reference" - "integer property passes" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 275 - dynamicRef.json: "$dynamicRef skips over intermediate resources - direct reference" - "string property fails" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/$defs/defaultContent/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar-item/content", 368s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/bar-item", 368s # "keywordLocation": "/properties/bar-item/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/main#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/$defs/defaultContent/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar-item/content", 368s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/bar-item", 368s # "keywordLocation": "/properties/bar-item/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/main#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 276 - enum.json: "simple enum validation" - "one of the enum is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 277 - enum.json: "simple enum validation" - "something else is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 278 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 279 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 280 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 368s # result: { 368s # "errors": [ 368s # { 368s # "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)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "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)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 281 - enum.json: "heterogeneous enum validation" - "valid object matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 282 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 283 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 284 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 285 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 286 - enum.json: "enums in properties" - "both properties are valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 287 - enum.json: "enums in properties" - "wrong foo value" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/enum" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/enum" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 288 - enum.json: "enums in properties" - "wrong bar value" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/enum" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/enum" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 289 - enum.json: "enums in properties" - "missing optional property is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 290 - enum.json: "enums in properties" - "missing required property is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 291 - enum.json: "enums in properties" - "missing all properties is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 292 - enum.json: "enum with escaped characters" - "member 1 is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 293 - enum.json: "enum with escaped characters" - "member 2 is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 294 - enum.json: "enum with escaped characters" - "another string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 295 - enum.json: "enum with false does not match 0" - "false is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 296 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 297 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 298 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 299 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 300 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 301 - enum.json: "enum with true does not match 1" - "true is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 302 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 303 - enum.json: "enum with true does not match 1" - "float one is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 304 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 305 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 306 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 307 - enum.json: "enum with 0 does not match false" - "false is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 308 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 309 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 310 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 311 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 312 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 313 - enum.json: "enum with 1 does not match true" - "true is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 314 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 315 - enum.json: "enum with 1 does not match true" - "float one is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 316 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 317 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 318 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 319 - enum.json: "nul characters in strings" - "match string with nul" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 320 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 321 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 322 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than or equal to 3", 368s # "instanceLocation": "", 368s # "keywordLocation": "/exclusiveMaximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than or equal to 3", 368s # "instanceLocation": "", 368s # "keywordLocation": "/exclusiveMaximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 323 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than or equal to 3", 368s # "instanceLocation": "", 368s # "keywordLocation": "/exclusiveMaximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than or equal to 3", 368s # "instanceLocation": "", 368s # "keywordLocation": "/exclusiveMaximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 324 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 325 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 326 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than or equal to 1.1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/exclusiveMinimum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than or equal to 1.1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/exclusiveMinimum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 327 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than or equal to 1.1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/exclusiveMinimum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than or equal to 1.1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/exclusiveMinimum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 328 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 329 - format.json: "email format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 330 - format.json: "email format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 331 - format.json: "email format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 332 - format.json: "email format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 333 - format.json: "email format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 334 - format.json: "email format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 335 - format.json: "email format" - "invalid email string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 336 - format.json: "idn-email format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 337 - format.json: "idn-email format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 338 - format.json: "idn-email format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 339 - format.json: "idn-email format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 340 - format.json: "idn-email format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 341 - format.json: "idn-email format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 342 - format.json: "idn-email format" - "invalid idn-email string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 343 - format.json: "regex format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 344 - format.json: "regex format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 345 - format.json: "regex format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 346 - format.json: "regex format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 347 - format.json: "regex format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 348 - format.json: "regex format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 349 - format.json: "regex format" - "invalid regex string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 350 - format.json: "ipv4 format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 351 - format.json: "ipv4 format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 352 - format.json: "ipv4 format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 353 - format.json: "ipv4 format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 354 - format.json: "ipv4 format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 355 - format.json: "ipv4 format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 356 - format.json: "ipv4 format" - "invalid ipv4 string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 357 - format.json: "ipv6 format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 358 - format.json: "ipv6 format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 359 - format.json: "ipv6 format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 360 - format.json: "ipv6 format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 361 - format.json: "ipv6 format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 362 - format.json: "ipv6 format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 363 - format.json: "ipv6 format" - "invalid ipv6 string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 364 - format.json: "idn-hostname format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 365 - format.json: "idn-hostname format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 366 - format.json: "idn-hostname format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 367 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 368 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 369 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 370 - format.json: "idn-hostname format" - "invalid idn-hostname string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 371 - format.json: "hostname format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 372 - format.json: "hostname format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 373 - format.json: "hostname format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 374 - format.json: "hostname format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 375 - format.json: "hostname format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 376 - format.json: "hostname format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 377 - format.json: "hostname format" - "invalid hostname string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 378 - format.json: "date format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 379 - format.json: "date format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 380 - format.json: "date format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 381 - format.json: "date format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 382 - format.json: "date format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 383 - format.json: "date format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 384 - format.json: "date format" - "invalid date string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 385 - format.json: "date-time format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 386 - format.json: "date-time format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 387 - format.json: "date-time format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 388 - format.json: "date-time format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 389 - format.json: "date-time format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 390 - format.json: "date-time format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 391 - format.json: "date-time format" - "invalid date-time string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 392 - format.json: "time format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 393 - format.json: "time format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 394 - format.json: "time format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 395 - format.json: "time format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 396 - format.json: "time format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 397 - format.json: "time format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 398 - format.json: "time format" - "invalid time string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 399 - format.json: "json-pointer format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 400 - format.json: "json-pointer format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 401 - format.json: "json-pointer format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 402 - format.json: "json-pointer format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 403 - format.json: "json-pointer format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 404 - format.json: "json-pointer format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 405 - format.json: "json-pointer format" - "invalid json-pointer string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 406 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 407 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 408 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 409 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 410 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 411 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 412 - format.json: "relative-json-pointer format" - "invalid relative-json-pointer string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 413 - format.json: "iri format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 414 - format.json: "iri format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 415 - format.json: "iri format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 416 - format.json: "iri format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 417 - format.json: "iri format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 418 - format.json: "iri format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 419 - format.json: "iri format" - "invalid iri string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 420 - format.json: "iri-reference format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 421 - format.json: "iri-reference format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 422 - format.json: "iri-reference format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 423 - format.json: "iri-reference format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 424 - format.json: "iri-reference format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 425 - format.json: "iri-reference format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 426 - format.json: "iri-reference format" - "invalid iri-reference string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 427 - format.json: "uri format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 428 - format.json: "uri format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 429 - format.json: "uri format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 430 - format.json: "uri format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 431 - format.json: "uri format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 432 - format.json: "uri format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 433 - format.json: "uri format" - "invalid uri string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 434 - format.json: "uri-reference format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 435 - format.json: "uri-reference format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 436 - format.json: "uri-reference format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 437 - format.json: "uri-reference format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 438 - format.json: "uri-reference format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 439 - format.json: "uri-reference format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 440 - format.json: "uri-reference format" - "invalid uri-reference string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 441 - format.json: "uri-template format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 442 - format.json: "uri-template format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 443 - format.json: "uri-template format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 444 - format.json: "uri-template format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 445 - format.json: "uri-template format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 446 - format.json: "uri-template format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 447 - format.json: "uri-template format" - "invalid uri-template string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 448 - format.json: "uuid format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 449 - format.json: "uuid format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 450 - format.json: "uuid format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 451 - format.json: "uuid format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 452 - format.json: "uuid format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 453 - format.json: "uuid format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 454 - format.json: "uuid format" - "invalid uuid string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 455 - format.json: "duration format" - "all string formats ignore integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 456 - format.json: "duration format" - "all string formats ignore floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 457 - format.json: "duration format" - "all string formats ignore objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 458 - format.json: "duration format" - "all string formats ignore arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 459 - format.json: "duration format" - "all string formats ignore booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 460 - format.json: "duration format" - "all string formats ignore nulls" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 461 - format.json: "duration format" - "invalid duration string is only an annotation by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 462 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 463 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 464 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 465 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 466 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 467 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 468 - if-then-else.json: "if and then without else" - "valid through then" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 469 - if-then-else.json: "if and then without else" - "invalid through then" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than -10", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/minimum" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than -10", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/minimum" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 470 - if-then-else.json: "if and then without else" - "valid when if test fails" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 471 - if-then-else.json: "if and else without then" - "valid when if test passes" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 472 - if-then-else.json: "if and else without then" - "valid through else" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 473 - if-then-else.json: "if and else without then" - "invalid through else" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else/multipleOf" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else/multipleOf" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 474 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 475 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than -10", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/minimum" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than -10", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/minimum" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 476 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 477 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else/multipleOf" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else/multipleOf" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 478 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 479 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 480 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 481 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/const" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/const" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 482 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else/const" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else/const" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 483 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 484 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 485 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 486 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/const" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then/const" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/then" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 487 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else/const" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else/const" 368s # }, 368s # { 368s # "error": "subschema is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/else" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s 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" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/int/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/int/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/additionalProperties" 368s # }, 368s # { 368s # "error": "subschemas 0, 1 are not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/int/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/properties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 490 - items.json: "a schema given for items" - "valid items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 491 - items.json: "a schema given for items" - "wrong type of items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 492 - items.json: "a schema given for items" - "ignores non-arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 493 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 494 - items.json: "items with boolean schema (true)" - "any array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 495 - items.json: "items with boolean schema (true)" - "empty array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 496 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 497 - items.json: "items with boolean schema (false)" - "empty array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 498 - items.json: "items and subitems" - "valid items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 499 - items.json: "items and subitems" - "too many items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 500 - items.json: "items and subitems" - "too many sub-items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/item/items", 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0/2", 368s # "keywordLocation": "/prefixItems/0/$ref/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/item/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/prefixItems/0/$ref/items" 368s # }, 368s # { 368s # "error": "not all items are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/prefixItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/item/items", 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0/2", 368s # "keywordLocation": "/prefixItems/0/$ref/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/item/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/prefixItems/0/$ref/items" 368s # }, 368s # { 368s # "error": "not all items are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/prefixItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 501 - items.json: "items and subitems" - "wrong item" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/item/type", 368s # "error": "got object, not array", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/prefixItems/0/$ref/type" 368s # }, 368s # { 368s # "error": "not all items are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/prefixItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/item/type", 368s # "error": "got object, not array", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/prefixItems/0/$ref/type" 368s # }, 368s # { 368s # "error": "not all items are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/prefixItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 502 - items.json: "items and subitems" - "wrong sub-item" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "/0/0", 368s # "keywordLocation": "/prefixItems/0/$ref/prefixItems/0/$ref/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/item/prefixItems", 368s # "error": "not all items are valid", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/prefixItems/0/$ref/prefixItems" 368s # }, 368s # { 368s # "error": "not all items are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/prefixItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "/0/0", 368s # "keywordLocation": "/prefixItems/0/$ref/prefixItems/0/$ref/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/item/prefixItems", 368s # "error": "not all items are valid", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/prefixItems/0/$ref/prefixItems" 368s # }, 368s # { 368s # "error": "not all items are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/prefixItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 503 - items.json: "items and subitems" - "fewer items is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 504 - items.json: "nested items" - "valid nested array" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 505 - items.json: "nested items" - "nested array with invalid type" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/0/0/0/0", 368s # "keywordLocation": "/items/items/items/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0/0/0", 368s # "keywordLocation": "/items/items/items/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0/0", 368s # "keywordLocation": "/items/items/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/0/0/0/0", 368s # "keywordLocation": "/items/items/items/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0/0/0", 368s # "keywordLocation": "/items/items/items/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0/0", 368s # "keywordLocation": "/items/items/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 506 - items.json: "nested items" - "not deep enough" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not array", 368s # "instanceLocation": "/0/0/0", 368s # "keywordLocation": "/items/items/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0/0", 368s # "keywordLocation": "/items/items/items" 368s # }, 368s # { 368s # "error": "got integer, not array", 368s # "instanceLocation": "/0/1/0", 368s # "keywordLocation": "/items/items/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0/1", 368s # "keywordLocation": "/items/items/items" 368s # }, 368s # { 368s # "error": "got integer, not array", 368s # "instanceLocation": "/0/2/0", 368s # "keywordLocation": "/items/items/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0/2", 368s # "keywordLocation": "/items/items/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/items" 368s # }, 368s # { 368s # "error": "got integer, not array", 368s # "instanceLocation": "/1/0/0", 368s # "keywordLocation": "/items/items/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/1/0", 368s # "keywordLocation": "/items/items/items" 368s # }, 368s # { 368s # "error": "got integer, not array", 368s # "instanceLocation": "/1/1/0", 368s # "keywordLocation": "/items/items/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/1/1", 368s # "keywordLocation": "/items/items/items" 368s # }, 368s # { 368s # "error": "got integer, not array", 368s # "instanceLocation": "/1/2/0", 368s # "keywordLocation": "/items/items/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/1/2", 368s # "keywordLocation": "/items/items/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not array", 368s # "instanceLocation": "/0/0/0", 368s # "keywordLocation": "/items/items/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0/0", 368s # "keywordLocation": "/items/items/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 507 - items.json: "prefixItems with no additional items allowed" - "empty array" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 508 - items.json: "prefixItems with no additional items allowed" - "fewer number of items present (1)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 509 - items.json: "prefixItems with no additional items allowed" - "fewer number of items present (2)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 510 - items.json: "prefixItems with no additional items allowed" - "equal number of items present" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 511 - items.json: "prefixItems with no additional items allowed" - "additional items are not permitted" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 512 - items.json: "items does not look in applicators, valid case" - "prefixItems in allOf does not constrain items, invalid case" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than 5", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/minimum" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than 5", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/minimum" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 513 - items.json: "items does not look in applicators, valid case" - "prefixItems in allOf does not constrain items, valid case" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 514 - items.json: "prefixItems validation adjusts the starting index for items" - "valid items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 515 - items.json: "prefixItems validation adjusts the starting index for items" - "wrong type of second item" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 516 - items.json: "items with heterogeneous array" - "heterogeneous invalid instance" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 517 - items.json: "items with heterogeneous array" - "valid instance" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 518 - items.json: "items with null instance elements" - "allows null elements" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 519 - maxContains.json: "maxContains without contains is ignored" - "one item valid against lone maxContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 520 - maxContains.json: "maxContains without contains is ignored" - "two items still valid against lone maxContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 521 - maxContains.json: "maxContains with contains" - "empty data" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 522 - maxContains.json: "maxContains with contains" - "all elements match, valid maxContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 523 - maxContains.json: "maxContains with contains" - "all elements match, invalid maxContains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 524 - maxContains.json: "maxContains with contains" - "some elements match, valid maxContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 525 - maxContains.json: "maxContains with contains" - "some elements match, invalid maxContains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 526 - maxContains.json: "maxContains with contains, value with a decimal" - "one element matches, valid maxContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 527 - maxContains.json: "maxContains with contains, value with a decimal" - "too many elements match, invalid maxContains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 528 - maxContains.json: "minContains < maxContains" - "actual < minContains < maxContains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # }, 368s # { 368s # "error": "array contains fewer than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 529 - maxContains.json: "minContains < maxContains" - "minContains < actual < maxContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 530 - maxContains.json: "minContains < maxContains" - "minContains < maxContains < actual" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 3 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 3 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 531 - maxItems.json: "maxItems validation" - "shorter is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 532 - maxItems.json: "maxItems validation" - "exact length is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 533 - maxItems.json: "maxItems validation" - "too long is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array has more than 2 items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array has more than 2 items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 534 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 535 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 536 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array has more than 2 items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array has more than 2 items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 537 - maxLength.json: "maxLength validation" - "shorter is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 538 - maxLength.json: "maxLength validation" - "exact length is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 539 - maxLength.json: "maxLength validation" - "too long is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "length is greater than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxLength" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "length is greater than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxLength" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 540 - maxLength.json: "maxLength validation" - "ignores non-strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 541 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 542 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 543 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "length is greater than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxLength" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "length is greater than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxLength" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 544 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 545 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 546 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object has more than 2 properties", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object has more than 2 properties", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 547 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 548 - maxProperties.json: "maxProperties validation" - "ignores strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 549 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 550 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 551 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object has more than 2 properties", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object has more than 2 properties", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 552 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 553 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object has more than 0 property", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object has more than 0 property", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 554 - maximum.json: "maximum validation" - "below the maximum is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 555 - maximum.json: "maximum validation" - "boundary point is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 556 - maximum.json: "maximum validation" - "above the maximum is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than 3", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than 3", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 557 - maximum.json: "maximum validation" - "ignores non-numbers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 558 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 559 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 560 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 561 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than 300", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than 300", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 562 - minContains.json: "minContains without contains is ignored" - "one item valid against lone minContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 563 - minContains.json: "minContains without contains is ignored" - "zero items still valid against lone minContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 564 - minContains.json: "minContains=1 with contains" - "empty data" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # }, 368s # { 368s # "error": "array contains fewer than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 565 - minContains.json: "minContains=1 with contains" - "no elements match" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/contains/const" 368s # }, 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # }, 368s # { 368s # "error": "array contains fewer than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/contains/const" 368s # }, 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 566 - minContains.json: "minContains=1 with contains" - "single element matches, valid minContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 567 - minContains.json: "minContains=1 with contains" - "some elements match, valid minContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 568 - minContains.json: "minContains=1 with contains" - "all elements match, valid minContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 569 - minContains.json: "minContains=2 with contains" - "empty data" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # }, 368s # { 368s # "error": "array contains fewer than 2 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 570 - minContains.json: "minContains=2 with contains" - "all elements match, invalid minContains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array contains fewer than 2 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array contains fewer than 2 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 571 - minContains.json: "minContains=2 with contains" - "some elements match, invalid minContains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array contains fewer than 2 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array contains fewer than 2 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 572 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (exactly as needed)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 573 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (more than needed)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 574 - minContains.json: "minContains=2 with contains" - "some elements match, valid minContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 575 - minContains.json: "minContains=2 with contains with a decimal value" - "one element matches, invalid minContains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array contains fewer than 2 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array contains fewer than 2 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 576 - minContains.json: "minContains=2 with contains with a decimal value" - "both elements match, valid minContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 577 - minContains.json: "maxContains = minContains" - "empty data" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # }, 368s # { 368s # "error": "array contains fewer than 2 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 578 - minContains.json: "maxContains = minContains" - "all elements match, invalid minContains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array contains fewer than 2 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array contains fewer than 2 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 579 - minContains.json: "maxContains = minContains" - "all elements match, invalid maxContains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 2 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 2 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 580 - minContains.json: "maxContains = minContains" - "all elements match, valid maxContains and minContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 581 - minContains.json: "maxContains < minContains" - "empty data" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # }, 368s # { 368s # "error": "array contains fewer than 3 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 582 - minContains.json: "maxContains < minContains" - "invalid minContains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array contains fewer than 3 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array contains fewer than 3 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 583 - minContains.json: "maxContains < minContains" - "invalid maxContains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 584 - minContains.json: "maxContains < minContains" - "invalid maxContains and minContains" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # }, 368s # { 368s # "error": "array contains fewer than 3 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 585 - minContains.json: "minContains = 0" - "empty data" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 586 - minContains.json: "minContains = 0" - "minContains = 0 makes contains always pass" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 587 - minContains.json: "minContains = 0 with maxContains" - "empty data" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 588 - minContains.json: "minContains = 0 with maxContains" - "not more than maxContains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 589 - minContains.json: "minContains = 0 with maxContains" - "too many" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array contains more than 1 matching items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/maxContains" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 590 - minItems.json: "minItems validation" - "longer is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 591 - minItems.json: "minItems validation" - "exact length is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 592 - minItems.json: "minItems validation" - "too short is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array has fewer than 1 item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array has fewer than 1 item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 593 - minItems.json: "minItems validation" - "ignores non-arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 594 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 595 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array has fewer than 1 item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array has fewer than 1 item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 596 - minLength.json: "minLength validation" - "longer is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 597 - minLength.json: "minLength validation" - "exact length is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 598 - minLength.json: "minLength validation" - "too short is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "length is less than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minLength" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "length is less than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minLength" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 599 - minLength.json: "minLength validation" - "ignores non-strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 600 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "length is less than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minLength" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "length is less than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minLength" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 601 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 602 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "length is less than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minLength" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "length is less than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minLength" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 603 - minProperties.json: "minProperties validation" - "longer is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 604 - minProperties.json: "minProperties validation" - "exact length is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 605 - minProperties.json: "minProperties validation" - "too short is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object has fewer than 1 property", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object has fewer than 1 property", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 606 - minProperties.json: "minProperties validation" - "ignores arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 607 - minProperties.json: "minProperties validation" - "ignores strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 608 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 609 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 610 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object has fewer than 1 property", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object has fewer than 1 property", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 611 - minimum.json: "minimum validation" - "above the minimum is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 612 - minimum.json: "minimum validation" - "boundary point is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 613 - minimum.json: "minimum validation" - "below the minimum is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than 1.1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minimum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than 1.1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minimum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 614 - minimum.json: "minimum validation" - "ignores non-numbers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 615 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 616 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 617 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 618 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 619 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than -2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minimum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than -2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minimum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 620 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than -2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minimum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than -2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minimum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 621 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 622 - multipleOf.json: "by int" - "int by int" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 623 - multipleOf.json: "by int" - "int by int fail" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/multipleOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/multipleOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 624 - multipleOf.json: "by int" - "ignores non-numbers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 625 - multipleOf.json: "by number" - "zero is multiple of anything" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 626 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 627 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 1.5", 368s # "instanceLocation": "", 368s # "keywordLocation": "/multipleOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 1.5", 368s # "instanceLocation": "", 368s # "keywordLocation": "/multipleOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 628 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 629 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 0.0001", 368s # "instanceLocation": "", 368s # "keywordLocation": "/multipleOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 0.0001", 368s # "instanceLocation": "", 368s # "keywordLocation": "/multipleOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 630 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 0.123456789", 368s # "instanceLocation": "", 368s # "keywordLocation": "/multipleOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 0.123456789", 368s # "instanceLocation": "", 368s # "keywordLocation": "/multipleOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 631 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 632 - not.json: "not" - "allowed" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 633 - not.json: "not" - "disallowed" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 634 - not.json: "not multiple types" - "valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 635 - not.json: "not multiple types" - "mismatch" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 636 - not.json: "not multiple types" - "other mismatch" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 637 - not.json: "not more complex schema" - "match" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 638 - not.json: "not more complex schema" - "other match" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 639 - not.json: "not more complex schema" - "mismatch" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 640 - not.json: "forbidden property" - "property present" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/not" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/not" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 641 - not.json: "forbidden property" - "property absent" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 642 - not.json: "forbid everything with empty schema" - "number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 643 - not.json: "forbid everything with empty schema" - "string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 644 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 645 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 646 - not.json: "forbid everything with empty schema" - "null is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 647 - not.json: "forbid everything with empty schema" - "object is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 648 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 649 - not.json: "forbid everything with empty schema" - "array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 650 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 651 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 652 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 653 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 654 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 655 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 656 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 657 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 658 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 659 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is true", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 660 - not.json: "allow everything with boolean schema false" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 661 - not.json: "allow everything with boolean schema false" - "string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 662 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 663 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 664 - not.json: "allow everything with boolean schema false" - "null is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 665 - not.json: "allow everything with boolean schema false" - "object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 666 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 667 - not.json: "allow everything with boolean schema false" - "array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 668 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 669 - not.json: "double negation" - "any value is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 670 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 671 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/not" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 672 - oneOf.json: "oneOf" - "first oneOf valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 673 - oneOf.json: "oneOf" - "second oneOf valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 674 - oneOf.json: "oneOf" - "both oneOf valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 675 - oneOf.json: "oneOf" - "neither oneOf valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/type" 368s # }, 368s # { 368s # "error": "value is less than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/minimum" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/type" 368s # }, 368s # { 368s # "error": "value is less than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/minimum" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 676 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # }, 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 677 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 678 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 679 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1, 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 680 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 681 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 682 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0" 368s # }, 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1" 368s # }, 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/2" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0" 368s # }, 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1" 368s # }, 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/2" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 683 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 684 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 685 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 686 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/oneOf/0/properties/bar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/properties" 368s # }, 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/oneOf/1/properties/foo/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/properties" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/oneOf/0/properties/bar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/properties" 368s # }, 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/oneOf/1/properties/foo/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/properties" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 687 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 688 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 689 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/required" 368s # }, 368s # { 368s # "error": "object is missing properties: foo, baz", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/required" 368s # }, 368s # { 368s # "error": "object is missing properties: foo, baz", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 690 - oneOf.json: "oneOf with required" - "first valid - valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 691 - oneOf.json: "oneOf with required" - "second valid - valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 692 - oneOf.json: "oneOf with required" - "both valid - invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 693 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 694 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 695 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 696 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/required" 368s # }, 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: bar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/required" 368s # }, 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 697 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 698 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/oneOf/0/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/oneOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/oneOf/0/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/oneOf" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 699 - pattern.json: "pattern validation" - "a matching pattern is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 700 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 701 - pattern.json: "pattern validation" - "ignores booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 702 - pattern.json: "pattern validation" - "ignores integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 703 - pattern.json: "pattern validation" - "ignores floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 704 - pattern.json: "pattern validation" - "ignores objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 705 - pattern.json: "pattern validation" - "ignores arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 706 - pattern.json: "pattern validation" - "ignores null" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 707 - pattern.json: "pattern is not anchored" - "matches a substring" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 708 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 709 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 710 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/patternProperties/f.*o/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/patternProperties/f.*o/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 711 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/patternProperties/f.*o/type" 368s # }, 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/foooooo", 368s # "keywordLocation": "/patternProperties/f.*o/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/patternProperties/f.*o/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 712 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 713 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 714 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 715 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 716 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 717 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 718 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/a", 368s # "keywordLocation": "/patternProperties/a*/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/a", 368s # "keywordLocation": "/patternProperties/a*/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 719 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than 20", 368s # "instanceLocation": "/aaaa", 368s # "keywordLocation": "/patternProperties/aaa*/maximum" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than 20", 368s # "instanceLocation": "/aaaa", 368s # "keywordLocation": "/patternProperties/aaa*/maximum" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 720 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/aaa", 368s # "keywordLocation": "/patternProperties/a*/type" 368s # }, 368s # { 368s # "error": "value is greater than 20", 368s # "instanceLocation": "/aaaa", 368s # "keywordLocation": "/patternProperties/aaa*/maximum" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/aaa", 368s # "keywordLocation": "/patternProperties/a*/type" 368s # }, 368s # { 368s # "error": "value is greater than 20", 368s # "instanceLocation": "/aaaa", 368s # "keywordLocation": "/patternProperties/aaa*/maximum" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 721 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 722 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not boolean", 368s # "instanceLocation": "/a31b", 368s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not boolean", 368s # "instanceLocation": "/a31b", 368s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 723 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 724 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/a_X_3", 368s # "keywordLocation": "/patternProperties/X_/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/a_X_3", 368s # "keywordLocation": "/patternProperties/X_/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 725 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 726 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/patternProperties/b.*" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/patternProperties/b.*" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 727 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/patternProperties/b.*" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/patternProperties/b.*" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 728 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "property not permitted", 368s # "instanceLocation": "/foobar", 368s # "keywordLocation": "/patternProperties/b.*" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "property not permitted", 368s # "instanceLocation": "/foobar", 368s # "keywordLocation": "/patternProperties/b.*" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 729 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 730 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 731 - prefixItems.json: "a schema given for prefixItems" - "correct types" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 732 - prefixItems.json: "a schema given for prefixItems" - "wrong types" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/prefixItems/0/type" 368s # }, 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/prefixItems/1/type" 368s # }, 368s # { 368s # "error": "not all items are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/prefixItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/prefixItems/0/type" 368s # }, 368s # { 368s # "error": "not all items are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/prefixItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 733 - prefixItems.json: "a schema given for prefixItems" - "incomplete array of items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 734 - prefixItems.json: "a schema given for prefixItems" - "array with additional items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 735 - prefixItems.json: "a schema given for prefixItems" - "empty array" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 736 - prefixItems.json: "a schema given for prefixItems" - "JavaScript pseudo-array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 737 - prefixItems.json: "prefixItems with boolean schemas" - "array with one item is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 738 - prefixItems.json: "prefixItems with boolean schemas" - "array with two items is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/prefixItems/1" 368s # }, 368s # { 368s # "error": "not all items are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/prefixItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/prefixItems/1" 368s # }, 368s # { 368s # "error": "not all items are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/prefixItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 739 - prefixItems.json: "prefixItems with boolean schemas" - "empty array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 740 - prefixItems.json: "additional items are allowed by default" - "only the first item is validated" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 741 - prefixItems.json: "prefixItems with null instance elements" - "allows null elements" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 742 - properties.json: "object properties validation" - "both properties present and valid is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 743 - properties.json: "object properties validation" - "one property invalid is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not string", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not string", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 744 - properties.json: "object properties validation" - "both properties invalid is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not string", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/type" 368s # }, 368s # { 368s # "error": "got array, not integer", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not string", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 745 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 746 - properties.json: "object properties validation" - "ignores arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 747 - properties.json: "object properties validation" - "ignores other non-objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 748 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 749 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array has more than 3 items", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/maxItems" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array has more than 3 items", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/maxItems" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 750 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array has fewer than 2 items", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/patternProperties/f.o/minItems" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array has fewer than 2 items", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/patternProperties/f.o/minItems" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 751 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 752 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array has fewer than 2 items", 368s # "instanceLocation": "/fxo", 368s # "keywordLocation": "/patternProperties/f.o/minItems" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array has fewer than 2 items", 368s # "instanceLocation": "/fxo", 368s # "keywordLocation": "/patternProperties/f.o/minItems" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 753 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 754 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 755 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/quux", 368s # "keywordLocation": "/additionalProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/quux", 368s # "keywordLocation": "/additionalProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 756 - properties.json: "properties with boolean schema" - "no property present is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 757 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 758 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 759 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 760 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 761 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/foo\tbar", 368s # "keywordLocation": "/properties/foo\tbar/type" 368s # }, 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/foo\nbar", 368s # "keywordLocation": "/properties/foo\nbar/type" 368s # }, 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/foo\fbar", 368s # "keywordLocation": "/properties/foo\fbar/type" 368s # }, 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/foo\rbar", 368s # "keywordLocation": "/properties/foo\rbar/type" 368s # }, 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/foo\"bar", 368s # "keywordLocation": "/properties/foo\"bar/type" 368s # }, 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/foo\\bar", 368s # "keywordLocation": "/properties/foo\\bar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/foo\tbar", 368s # "keywordLocation": "/properties/foo\tbar/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 762 - properties.json: "properties with null valued instance properties" - "allows null values" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 763 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 764 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 765 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 766 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/__proto__", 368s # "keywordLocation": "/properties/__proto__/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/__proto__", 368s # "keywordLocation": "/properties/__proto__/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 767 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/toString/length", 368s # "keywordLocation": "/properties/toString/properties/length/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/toString", 368s # "keywordLocation": "/properties/toString/properties" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/toString/length", 368s # "keywordLocation": "/properties/toString/properties/length/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/toString", 368s # "keywordLocation": "/properties/toString/properties" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 768 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not number", 368s # "instanceLocation": "/constructor", 368s # "keywordLocation": "/properties/constructor/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not number", 368s # "instanceLocation": "/constructor", 368s # "keywordLocation": "/properties/constructor/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 769 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 770 - propertyNames.json: "propertyNames validation" - "all property names valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 771 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "length is greater than 3", 368s # "instanceLocation": "/foobar", 368s # "keywordLocation": "/propertyNames/maxLength" 368s # }, 368s # { 368s # "error": "not all property names are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/propertyNames" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "length is greater than 3", 368s # "instanceLocation": "/foobar", 368s # "keywordLocation": "/propertyNames/maxLength" 368s # }, 368s # { 368s # "error": "not all property names are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/propertyNames" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 772 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 773 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 774 - propertyNames.json: "propertyNames validation" - "ignores strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 775 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 776 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 777 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "/aaA", 368s # "keywordLocation": "/propertyNames/pattern" 368s # }, 368s # { 368s # "error": "not all property names are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/propertyNames" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "/aaA", 368s # "keywordLocation": "/propertyNames/pattern" 368s # }, 368s # { 368s # "error": "not all property names are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/propertyNames" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 778 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 779 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 780 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 781 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/propertyNames" 368s # }, 368s # { 368s # "error": "not all property names are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/propertyNames" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "subschema is false", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/propertyNames" 368s # }, 368s # { 368s # "error": "not all property names are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/propertyNames" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 782 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 783 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 784 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/propertyNames/const" 368s # }, 368s # { 368s # "error": "not all property names are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/propertyNames" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/propertyNames/const" 368s # }, 368s # { 368s # "error": "not all property names are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/propertyNames" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 785 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 786 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 787 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 788 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/propertyNames/enum" 368s # }, 368s # { 368s # "error": "not all property names are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/propertyNames" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/propertyNames/enum" 368s # }, 368s # { 368s # "error": "not all property names are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/propertyNames" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 789 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 790 - ref.json: "root pointer ref" - "match" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 791 - ref.json: "root pointer ref" - "recursive match" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 792 - ref.json: "root pointer ref" - "mismatch" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 793 - ref.json: "root pointer ref" - "recursive mismatch" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/additionalProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo/bar", 368s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/additionalProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/additionalProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo/bar", 368s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/additionalProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 794 - ref.json: "relative pointer ref to object" - "match" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 795 - ref.json: "relative pointer ref to object" - "mismatch" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/properties/foo/type", 368s # "error": "got boolean, not integer", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/properties/foo/type", 368s # "error": "got boolean, not integer", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 796 - ref.json: "relative pointer ref to array" - "match array" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 797 - ref.json: "relative pointer ref to array" - "mismatch array" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/prefixItems/0/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/prefixItems/1/$ref/type" 368s # }, 368s # { 368s # "error": "not all items are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/prefixItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/prefixItems/0/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/prefixItems/1/$ref/type" 368s # }, 368s # { 368s # "error": "not all items are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/prefixItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 798 - ref.json: "escaped pointer ref" - "slash invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/slash", 368s # "keywordLocation": "/properties/slash/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/slash", 368s # "keywordLocation": "/properties/slash/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 799 - ref.json: "escaped pointer ref" - "tilde invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/tilde", 368s # "keywordLocation": "/properties/tilde/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/tilde", 368s # "keywordLocation": "/properties/tilde/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 800 - ref.json: "escaped pointer ref" - "percent invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/percent", 368s # "keywordLocation": "/properties/percent/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/percent", 368s # "keywordLocation": "/properties/percent/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 801 - ref.json: "escaped pointer ref" - "slash valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 802 - ref.json: "escaped pointer ref" - "tilde valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 803 - ref.json: "escaped pointer ref" - "percent valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 804 - ref.json: "nested refs" - "nested ref valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 805 - ref.json: "nested refs" - "nested ref invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/a/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/a/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 806 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 807 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "array has more than 2 items", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/maxItems" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "array has more than 2 items", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/maxItems" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 808 - ref.json: "ref applies alongside sibling keywords" - "ref invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/reffed/type", 368s # "error": "got string, not array", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/reffed/type", 368s # "error": "got string, not array", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 809 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 810 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/nonNegativeInteger/minimum", 368s # "error": "value is less than 0", 368s # "instanceLocation": "/minLength", 368s # "keywordLocation": "/$ref/allOf/3/$ref/properties/minLength/$ref/$ref/minimum" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/allOf/3/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 368s # "error": "subschema 3 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/nonNegativeInteger/minimum", 368s # "error": "value is less than 0", 368s # "instanceLocation": "/minLength", 368s # "keywordLocation": "/$ref/allOf/3/$ref/properties/minLength/$ref/$ref/minimum" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/allOf/3/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 368s # "error": "subschema 3 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 811 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 812 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/$ref", 368s # "keywordLocation": "/properties/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/$ref", 368s # "keywordLocation": "/properties/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 813 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 814 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/is-string/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/$ref", 368s # "keywordLocation": "/properties/$ref/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/is-string/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/$ref", 368s # "keywordLocation": "/properties/$ref/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 815 - ref.json: "$ref to boolean schema true" - "any value is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 816 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/bool", 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/bool", 368s # "error": "subschema is false", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 817 - ref.json: "Recursive references between schemas" - "valid tree" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 818 - ref.json: "Recursive references between schemas" - "invalid tree" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties/value/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 368s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/nodes/0/subtree/nodes/0", 368s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/nodes/0/subtree/nodes", 368s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/nodes/0/subtree", 368s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/nodes/0", 368s # "keywordLocation": "/properties/nodes/items/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/nodes", 368s # "keywordLocation": "/properties/nodes/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties/value/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 368s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/nodes/0/subtree/nodes/0", 368s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/nodes/0/subtree/nodes", 368s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/nodes/0/subtree", 368s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/nodes/0", 368s # "keywordLocation": "/properties/nodes/items/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/nodes", 368s # "keywordLocation": "/properties/nodes/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 819 - ref.json: "refs with quote" - "object with numbers is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 820 - ref.json: "refs with quote" - "object with strings is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "/foo\"bar", 368s # "keywordLocation": "/properties/foo\"bar/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "/foo\"bar", 368s # "keywordLocation": "/properties/foo\"bar/$ref/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 821 - ref.json: "ref creates new scope when adjacent to keywords" - "referenced subschema doesn't see annotations from properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/prop1", 368s # "keywordLocation": "/$ref/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/prop1", 368s # "keywordLocation": "/$ref/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s 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" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/enum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 824 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 825 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo/bar", 368s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo/bar", 368s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 826 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/$ref/$ref/properties/bar/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/$ref/$ref/properties/bar/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 827 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 828 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo/bar", 368s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo/bar", 368s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 829 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/$ref/$ref/properties/bar/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/$ref/$ref/properties/bar/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 830 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 831 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 832 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 833 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 834 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id1/int.json#/maximum", 368s # "error": "value is greater than 10", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/maximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id1/int.json#/maximum", 368s # "error": "value is greater than 10", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/maximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 835 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 836 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id2/base.json#/$defs/bigint/maximum", 368s # "error": "value is greater than 10", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/maximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id2/base.json#/$defs/bigint/maximum", 368s # "error": "value is greater than 10", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/maximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 837 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 838 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 368s # "error": "value is less than 30", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/minimum" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 368s # "error": "value is less than 30", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/minimum" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 839 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 840 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 841 - ref.json: "URN base URI with NSS" - "a string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 842 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 843 - ref.json: "URN base URI with r-component" - "a string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 844 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 845 - ref.json: "URN base URI with q-component" - "a string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 846 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 847 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 848 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 849 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 850 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 851 - ref.json: "URN ref with nested pointer ref" - "a string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 852 - ref.json: "URN ref with nested pointer ref" - "a non-string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 853 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 854 - ref.json: "ref to if" - "an integer is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 855 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 856 - ref.json: "ref to then" - "an integer is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 857 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 858 - ref.json: "ref to else" - "an integer is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 859 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 860 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 861 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 862 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 863 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 864 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 865 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 866 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs//$defs//type", 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/$ref/type" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs//$defs//type", 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/$ref/type" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 867 - refRemote.json: "remote ref" - "remote ref valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 868 - refRemote.json: "remote ref" - "remote ref invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 869 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 870 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 871 - refRemote.json: "anchor within remote ref" - "remote anchor valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 872 - refRemote.json: "anchor within remote ref" - "remote anchor invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 873 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 874 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 875 - refRemote.json: "base URI change" - "base URI change ref valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 876 - refRemote.json: "base URI change" - "base URI change ref invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/folderInteger.json#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/0/0", 368s # "keywordLocation": "/items/items/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/folderInteger.json#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/0/0", 368s # "keywordLocation": "/items/items/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 877 - refRemote.json: "base URI change - change folder" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 878 - refRemote.json: "base URI change - change folder" - "string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/folderInteger.json#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/list/0", 368s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/list", 368s # "keywordLocation": "/properties/list/$ref/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs1.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/folderInteger.json#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/list/0", 368s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/#/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/list", 368s # "keywordLocation": "/properties/list/$ref/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs1.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 879 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 880 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/folderInteger.json#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/list/0", 368s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/#/$defs/bar/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/list", 368s # "keywordLocation": "/properties/list/$ref/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs2.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/folderInteger.json#/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/list/0", 368s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/#/$defs/bar/items", 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "/list", 368s # "keywordLocation": "/properties/list/$ref/items" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs2.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 881 - refRemote.json: "root ref in remote ref" - "string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 882 - refRemote.json: "root ref in remote ref" - "null is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 883 - refRemote.json: "root ref in remote ref" - "object is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf/0/type", 368s # "error": "got object, not null", 368s # "instanceLocation": "/name", 368s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/type", 368s # "error": "got object, not string", 368s # "instanceLocation": "/name", 368s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf", 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "/name", 368s # "keywordLocation": "/properties/name/$ref/anyOf" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/object#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf/0/type", 368s # "error": "got object, not null", 368s # "instanceLocation": "/name", 368s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/type", 368s # "error": "got object, not string", 368s # "instanceLocation": "/name", 368s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf", 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "/name", 368s # "keywordLocation": "/properties/name/$ref/anyOf" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/object#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 884 - refRemote.json: "remote ref with ref to defs" - "invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/$ref/$ref/properties/bar/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/$ref/$ref/properties/bar/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 885 - refRemote.json: "remote ref with ref to defs" - "valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 886 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 887 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 888 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/name/foo", 368s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/foo-ref-string.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/name", 368s # "keywordLocation": "/properties/name/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/some-id#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "/name/foo", 368s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/foo-ref-string.json#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/name", 368s # "keywordLocation": "/properties/name/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/some-id#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 889 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 890 - refRemote.json: "remote HTTP ref with different $id" - "number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 891 - refRemote.json: "remote HTTP ref with different $id" - "string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 892 - refRemote.json: "remote HTTP ref with different URN $id" - "number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 893 - refRemote.json: "remote HTTP ref with different URN $id" - "string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 894 - refRemote.json: "remote HTTP ref with nested absolute ref" - "number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 895 - refRemote.json: "remote HTTP ref with nested absolute ref" - "string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 896 - refRemote.json: "$ref to $ref finds detached $anchor" - "number is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 897 - refRemote.json: "$ref to $ref finds detached $anchor" - "non-number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-ref.json#/$defs/detached/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-ref.json#/$defs/detached/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/$ref/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 898 - required.json: "required validation" - "present required property is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 899 - required.json: "required validation" - "non-present required property is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing property: foo", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 900 - required.json: "required validation" - "ignores arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 901 - required.json: "required validation" - "ignores strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 902 - required.json: "required validation" - "ignores other non-objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 903 - required.json: "required default validation" - "not required by default" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 904 - required.json: "required with empty array" - "property not required" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 905 - required.json: "required with escaped characters" - "object with all properties present is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 906 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 907 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 908 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 909 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing properties: __proto__, toString, constructor", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing properties: __proto__, toString, constructor", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 910 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing properties: toString, constructor", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing properties: toString, constructor", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 911 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing properties: __proto__, constructor", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing properties: __proto__, constructor", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 912 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing properties: __proto__, toString", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "object is missing properties: __proto__, toString", 368s # "instanceLocation": "", 368s # "keywordLocation": "/required" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 913 - required.json: "required properties whose names are Javascript object property names" - "all present" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 914 - type.json: "integer type matches integers" - "an integer is an integer" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 915 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 916 - type.json: "integer type matches integers" - "a float is not an integer" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 917 - type.json: "integer type matches integers" - "a string is not an integer" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 918 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 919 - type.json: "integer type matches integers" - "an object is not an integer" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 920 - type.json: "integer type matches integers" - "an array is not an integer" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 921 - type.json: "integer type matches integers" - "a boolean is not an integer" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 922 - type.json: "integer type matches integers" - "null is not an integer" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not integer", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 923 - type.json: "number type matches numbers" - "an integer is a number" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 924 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 925 - type.json: "number type matches numbers" - "a float is a number" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 926 - type.json: "number type matches numbers" - "a string is not a number" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 927 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 928 - type.json: "number type matches numbers" - "an object is not a number" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 929 - type.json: "number type matches numbers" - "an array is not a number" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 930 - type.json: "number type matches numbers" - "a boolean is not a number" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 931 - type.json: "number type matches numbers" - "null is not a number" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 932 - type.json: "string type matches strings" - "1 is not a string" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 933 - type.json: "string type matches strings" - "a float is not a string" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 934 - type.json: "string type matches strings" - "a string is a string" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 935 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 936 - type.json: "string type matches strings" - "an empty string is still a string" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 937 - type.json: "string type matches strings" - "an object is not a string" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 938 - type.json: "string type matches strings" - "an array is not a string" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 939 - type.json: "string type matches strings" - "a boolean is not a string" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 940 - type.json: "string type matches strings" - "null is not a string" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 941 - type.json: "object type matches objects" - "an integer is not an object" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 942 - type.json: "object type matches objects" - "a float is not an object" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 943 - type.json: "object type matches objects" - "a string is not an object" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 944 - type.json: "object type matches objects" - "an object is an object" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 945 - type.json: "object type matches objects" - "an array is not an object" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 946 - type.json: "object type matches objects" - "a boolean is not an object" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 947 - type.json: "object type matches objects" - "null is not an object" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 948 - type.json: "array type matches arrays" - "an integer is not an array" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not array", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not array", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 949 - type.json: "array type matches arrays" - "a float is not an array" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not array", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not array", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 950 - type.json: "array type matches arrays" - "a string is not an array" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not array", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not array", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 951 - type.json: "array type matches arrays" - "an object is not an array" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not array", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not array", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 952 - type.json: "array type matches arrays" - "an array is an array" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 953 - type.json: "array type matches arrays" - "a boolean is not an array" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not array", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not array", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 954 - type.json: "array type matches arrays" - "null is not an array" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not array", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not array", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 955 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 956 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 957 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 958 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 959 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 960 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 961 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 962 - type.json: "boolean type matches booleans" - "true is a boolean" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 963 - type.json: "boolean type matches booleans" - "false is a boolean" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 964 - type.json: "boolean type matches booleans" - "null is not a boolean" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not boolean", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 965 - type.json: "null type matches only the null object" - "an integer is not null" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 966 - type.json: "null type matches only the null object" - "a float is not null" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 967 - type.json: "null type matches only the null object" - "zero is not null" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 968 - type.json: "null type matches only the null object" - "a string is not null" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 969 - type.json: "null type matches only the null object" - "an empty string is not null" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 970 - type.json: "null type matches only the null object" - "an object is not null" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 971 - type.json: "null type matches only the null object" - "an array is not null" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 972 - type.json: "null type matches only the null object" - "true is not null" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 973 - type.json: "null type matches only the null object" - "false is not null" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 974 - type.json: "null type matches only the null object" - "null is null" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 975 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 976 - type.json: "multiple types can be specified in an array" - "a string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 977 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not one of integer, string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got number, not one of integer, string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 978 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not one of integer, string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got object, not one of integer, string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 979 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not one of integer, string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got array, not one of integer, string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 980 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not one of integer, string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got boolean, not one of integer, string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 981 - type.json: "multiple types can be specified in an array" - "null is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not one of integer, string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not one of integer, string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 982 - type.json: "type as array with one item" - "string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 983 - type.json: "type as array with one item" - "number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not one of string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not one of string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 984 - type.json: "type: array or object" - "array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 985 - type.json: "type: array or object" - "object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 986 - type.json: "type: array or object" - "number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not one of array, object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not one of array, object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 987 - type.json: "type: array or object" - "string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not one of array, object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not one of array, object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 988 - type.json: "type: array or object" - "null is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not one of array, object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got null, not one of array, object", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 989 - type.json: "type: array, object or null" - "array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 990 - type.json: "type: array, object or null" - "object is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 991 - type.json: "type: array, object or null" - "null is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 992 - type.json: "type: array, object or null" - "number is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not one of array, object, null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not one of array, object, null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 993 - type.json: "type: array, object or null" - "string is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not one of array, object, null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not one of array, object, null", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 994 - unevaluatedItems.json: "unevaluatedItems true" - "with no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 995 - unevaluatedItems.json: "unevaluatedItems true" - "with unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 996 - unevaluatedItems.json: "unevaluatedItems false" - "with no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 997 - unevaluatedItems.json: "unevaluatedItems false" - "with unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 998 - unevaluatedItems.json: "unevaluatedItems as schema" - "with no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 999 - unevaluatedItems.json: "unevaluatedItems as schema" - "with valid unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1000 - unevaluatedItems.json: "unevaluatedItems as schema" - "with invalid unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1001 - unevaluatedItems.json: "unevaluatedItems with uniform items" - "unevaluatedItems doesn't apply" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1002 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1003 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1004 - unevaluatedItems.json: "unevaluatedItems with items and prefixItems" - "unevaluatedItems doesn't apply" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1005 - unevaluatedItems.json: "unevaluatedItems with items" - "valid under items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1006 - unevaluatedItems.json: "unevaluatedItems with items" - "invalid under items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/type" 368s # }, 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/type" 368s # }, 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/items/type" 368s # }, 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/items/type" 368s # }, 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/items/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1007 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1008 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1009 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with only (valid) additional items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1010 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with no additional items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1011 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with invalid additional item" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not boolean", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not boolean", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1012 - unevaluatedItems.json: "unevaluatedItems with nested prefixItems and items" - "with no additional items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1013 - unevaluatedItems.json: "unevaluatedItems with nested prefixItems and items" - "with additional items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1014 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with no additional items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1015 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with additional items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1016 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1017 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1018 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1019 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1020 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1021 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1022 - unevaluatedItems.json: "unevaluatedItems with not" - "with unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1023 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1024 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1025 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1026 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/4", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/4", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1027 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1028 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1029 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1030 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1031 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1032 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1033 - unevaluatedItems.json: "unevaluatedItems with $dynamicRef" - "with no unevaluated items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1034 - unevaluatedItems.json: "unevaluatedItems with $dynamicRef" - "with unevaluated items" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/$ref/unevaluatedItems" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/$ref/unevaluatedItems" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1035 - unevaluatedItems.json: "unevaluatedItems can't see inside cousins" - "always fails" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/allOf/1/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/allOf/1/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1036 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "no extra items" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1037 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "uncle keyword evaluation is not significant" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/foo/1", 368s # "keywordLocation": "/properties/foo/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/unevaluatedItems" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/foo/1", 368s # "keywordLocation": "/properties/foo/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/unevaluatedItems" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1038 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "second item is evaluated by contains" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1039 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "contains fails, second item is not evaluated" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/contains/type" 368s # }, 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/contains/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/contains/type" 368s # }, 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/contains/type" 368s # }, 368s # { 368s # "error": "subschema is not valid against any item", 368s # "instanceLocation": "", 368s # "keywordLocation": "/contains" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1040 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "contains passes, second item is not evaluated" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1041 - unevaluatedItems.json: "unevaluatedItems depends on multiple nested contains" - "5 not evaluated, passes unevaluatedItems" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1042 - unevaluatedItems.json: "unevaluatedItems depends on multiple nested contains" - "7 not evaluated, fails unevaluatedItems" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 5", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/unevaluatedItems/multipleOf" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is not a multiple of 5", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/unevaluatedItems/multipleOf" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1043 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "empty array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1044 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only a's are valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1045 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "a's and b's are valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1046 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "a's, b's and c's are valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1047 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only b's are invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1048 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only c's are invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1049 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only b's and c's are invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/4", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/1", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/3", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/4", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1050 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only a's and c's are invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/4", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/4", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1051 - unevaluatedItems.json: "non-array instances are valid" - "ignores booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1052 - unevaluatedItems.json: "non-array instances are valid" - "ignores integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1053 - unevaluatedItems.json: "non-array instances are valid" - "ignores floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1054 - unevaluatedItems.json: "non-array instances are valid" - "ignores objects" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1055 - unevaluatedItems.json: "non-array instances are valid" - "ignores strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1056 - unevaluatedItems.json: "non-array instances are valid" - "ignores null" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1057 - unevaluatedItems.json: "unevaluatedItems with null instance elements" - "allows null elements" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1058 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "valid in case if is evaluated" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1059 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "invalid in case if is evaluated" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/0", 368s # "keywordLocation": "/unevaluatedItems" 368s # }, 368s # { 368s # "error": "subschema is not valid against all additional items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 1060 - unevaluatedProperties.json: "unevaluatedProperties true" - "with no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1061 - unevaluatedProperties.json: "unevaluatedProperties true" - "with unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1062 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1063 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with valid unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1064 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with invalid unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "length is less than 3", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties/minLength" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "length is less than 3", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties/minLength" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1065 - unevaluatedProperties.json: "unevaluatedProperties false" - "with no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1066 - unevaluatedProperties.json: "unevaluatedProperties false" - "with unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1067 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1068 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1069 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1070 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1071 - unevaluatedProperties.json: "unevaluatedProperties with adjacent bool additionalProperties" - "with no additional properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1072 - unevaluatedProperties.json: "unevaluatedProperties with adjacent bool additionalProperties" - "with additional properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1073 - unevaluatedProperties.json: "unevaluatedProperties with adjacent non-bool additionalProperties" - "with only valid additional properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1074 - unevaluatedProperties.json: "unevaluatedProperties with adjacent non-bool additionalProperties" - "with invalid additional properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/additionalProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/additionalProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1075 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with no additional properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1076 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with additional properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1077 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with no additional properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1078 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with additional properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1079 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with no additional properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1080 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with additional properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1081 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with no nested unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1082 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with nested unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1083 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1084 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1085 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1086 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/quux", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/quux", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1087 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1088 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/quux", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/quux", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1089 - unevaluatedProperties.json: "unevaluatedProperties with not" - "with unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1090 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1091 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1092 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1093 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1094 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has no unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1095 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1096 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1097 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1098 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1099 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1100 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has no unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1101 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1102 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1103 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1104 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1105 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1106 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1107 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1108 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1109 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1110 - unevaluatedProperties.json: "unevaluatedProperties with $dynamicRef" - "with no unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1111 - unevaluatedProperties.json: "unevaluatedProperties with $dynamicRef" - "with unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/$ref/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/baz", 368s # "keywordLocation": "/$ref/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1112 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins" - "always fails" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1113 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins (reverse order)" - "always fails" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1114 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with no nested unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1115 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with nested unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1116 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with no nested unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1117 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with nested unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1118 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with no nested unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1119 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with nested unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1120 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with no nested unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1121 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with nested unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1122 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with no nested unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1123 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with nested unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1124 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with no nested unevaluated properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1125 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with nested unevaluated properties" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/1/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 1 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1126 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "no extra properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1127 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "uncle keyword evaluation is not significant" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo/faz", 368s # "keywordLocation": "/properties/foo/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo/faz", 368s # "keywordLocation": "/properties/foo/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/properties/foo/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1128 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "base case: both properties present" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1129 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, bar is missing" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1130 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, foo is missing" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "subschema 0 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1131 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "base case: both properties present" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1132 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, bar is missing" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1133 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, foo is missing" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1134 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Empty is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1135 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Single is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1136 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 1st level is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/y", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/y", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1137 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Nested is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1138 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 2nd level is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/unevaluatedProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/x/y", 368s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/unevaluatedProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/x", 368s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/unevaluatedProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/x/y", 368s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/unevaluatedProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/x", 368s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1139 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Deep nested is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1140 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 3rd level is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/unevaluatedProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/x/x/y", 368s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/unevaluatedProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/x/x", 368s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/x", 368s # "keywordLocation": "/properties/x/$ref/properties" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/unevaluatedProperties", 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/x/x/y", 368s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/unevaluatedProperties", 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "/x/x", 368s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/x", 368s # "keywordLocation": "/properties/x/$ref/properties" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1141 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "Empty is invalid (no x or y)" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/two/required", 368s # "error": "object is missing property: x", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 368s # }, 368s # { 368s # "error": "object is missing property: y", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf" 368s # }, 368s # { 368s # "error": "subschema 2 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/two/required", 368s # "error": "object is missing property: x", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 368s # }, 368s # { 368s # "error": "object is missing property: y", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf" 368s # }, 368s # { 368s # "error": "subschema 2 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1142 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b are invalid (no x or y)" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/two/required", 368s # "error": "object is missing property: x", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 368s # }, 368s # { 368s # "error": "object is missing property: y", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf" 368s # }, 368s # { 368s # "error": "subschema 2 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/two/required", 368s # "error": "object is missing property: x", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 368s # }, 368s # { 368s # "error": "object is missing property: y", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf" 368s # }, 368s # { 368s # "error": "subschema 2 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1143 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "x and y are invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf" 368s # }, 368s # { 368s # "error": "subschema 2 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/x", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/y", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf" 368s # }, 368s # { 368s # "error": "subschema 2 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/x", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/y", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1144 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and x are valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1145 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and y are valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1146 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x are valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1147 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and y are valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1148 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x and y are invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf" 368s # }, 368s # { 368s # "error": "subschema 2 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/x", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/y", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf/2/oneOf" 368s # }, 368s # { 368s # "error": "subschema 2 is not valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/allOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/x", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/y", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1149 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "Empty is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 368s # "error": "object is missing property: c", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 368s # "error": "object is missing property: d", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 368s # "error": "object is missing property: b", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 368s # "error": "object is missing property: xx", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 368s # "error": "object is missing property: all", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 368s # "error": "object is missing property: c", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 368s # "error": "object is missing property: d", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 368s # "error": "object is missing property: b", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 368s # "error": "object is missing property: xx", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 368s # "error": "object is missing property: all", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1150 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1151 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1152 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1153 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "d is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1154 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + b is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1155 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + c is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1156 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + d is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1157 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + c is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/b", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/c", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/b", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/c", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1158 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + d is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/b", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/d", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/b", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/d", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1159 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c + d is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 368s # "error": "object is missing property: b", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 368s # "error": "object is missing property: xx", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 368s # "error": "object is missing property: all", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/c", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/d", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 368s # "error": "object is missing property: b", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 368s # "error": "object is missing property: xx", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 368s # "error": "object is missing property: all", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/c", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/d", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1160 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1161 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foox is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1162 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foo is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1163 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + a is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1164 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + b is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "multiple subschemas are valid: 1, 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/b", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/xx", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "multiple subschemas are valid: 1, 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/b", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/xx", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1165 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + c is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "multiple subschemas are valid: 0, 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/c", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/xx", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "multiple subschemas are valid: 0, 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/c", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/xx", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1166 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + d is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "multiple subschemas are valid: 0, 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/d", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/xx", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 368s # "error": "multiple subschemas are valid: 0, 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/0/$ref/oneOf" 368s # }, 368s # { 368s # "error": "object is missing property: a", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf/1/required" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/d", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/xx", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1167 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1168 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + foo is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1169 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + a is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "multiple subschemas are valid: 0, 1", 368s # "instanceLocation": "", 368s # "keywordLocation": "/oneOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1170 - unevaluatedProperties.json: "non-object instances are valid" - "ignores booleans" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1171 - unevaluatedProperties.json: "non-object instances are valid" - "ignores integers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1172 - unevaluatedProperties.json: "non-object instances are valid" - "ignores floats" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1173 - unevaluatedProperties.json: "non-object instances are valid" - "ignores arrays" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1174 - unevaluatedProperties.json: "non-object instances are valid" - "ignores strings" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1175 - unevaluatedProperties.json: "non-object instances are valid" - "ignores null" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1176 - unevaluatedProperties.json: "unevaluatedProperties with null valued instance properties" - "allows null valued properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1177 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "allows only number properties" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1178 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "string property is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/a", 368s # "keywordLocation": "/unevaluatedProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "/a", 368s # "keywordLocation": "/unevaluatedProperties/type" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1179 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "valid in case if is evaluated" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1180 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "invalid in case if is evaluated" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1181 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't consider dependentSchemas" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/foo", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1182 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't see bar when foo2 is absent" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/unevaluatedProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/unevaluatedProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1183 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties sees bar when foo2 is present" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 1184 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1185 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1186 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 2 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 2 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1187 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1188 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1189 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1190 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1191 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 2 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 2 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1192 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1193 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1194 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1195 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1196 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1197 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1198 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1199 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 2 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 2 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1200 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1201 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1202 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1203 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1204 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1205 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1206 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1207 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 4 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 4 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1208 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1209 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1210 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1211 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1212 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1213 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1214 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1215 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1216 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1217 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1218 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 2 and 3 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 2 and 3 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1219 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 2 and 3 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 2 and 3 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1220 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1221 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1222 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1223 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "items at indices 0 and 1 are not unique", 368s # "instanceLocation": "", 368s # "keywordLocation": "/uniqueItems" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1224 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1225 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1226 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1227 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1228 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1229 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1230 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1231 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1232 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1233 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1234 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1235 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1236 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1237 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1238 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1239 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1240 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1241 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1242 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1243 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1244 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1245 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1246 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1247 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1248 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1249 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1250 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1251 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1252 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional item not permitted", 368s # "instanceLocation": "/2", 368s # "keywordLocation": "/items" 368s # }, 368s # { 368s # "error": "subschema is not valid against all items", 368s # "instanceLocation": "", 368s # "keywordLocation": "/items" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 1253 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "applicator vocabulary still works" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 368s # "error": "property not permitted", 368s # "instanceLocation": "/badProperty", 368s # "keywordLocation": "/properties/badProperty" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 368s # "error": "property not permitted", 368s # "instanceLocation": "/badProperty", 368s # "keywordLocation": "/properties/badProperty" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1254 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: valid number" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1255 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: invalid number, but it still validates" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1256 - vocabulary.json: "ignore unrecognized optional vocabulary" - "string value" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not number", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1257 - vocabulary.json: "ignore unrecognized optional vocabulary" - "number value" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 1258 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "exact match to enum, and type matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1259 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "in implementations that strip $anchor, this may match either $def" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/$ref/enum" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 368s # "error": "got object, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/$ref/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/$ref/enum" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 368s # "error": "got object, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/$ref/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1260 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "match $ref to $anchor" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1261 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "no match on enum or $ref to $anchor" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/$ref/enum" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/$ref/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/$ref/enum" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/$ref/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 1262 - optional/bignum.json: "integer" - "a bignum is an integer" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1263 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1264 - optional/bignum.json: "number" - "a bignum is a number" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1265 - optional/bignum.json: "number" - "a negative bignum is a number" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1266 - optional/bignum.json: "string" - "a bignum is not a string" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/type" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1267 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1268 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 368s # "instanceLocation": "", 368s # "keywordLocation": "/exclusiveMaximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 368s # "instanceLocation": "", 368s # "keywordLocation": "/exclusiveMaximum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1269 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1270 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 368s # "instanceLocation": "", 368s # "keywordLocation": "/exclusiveMinimum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 368s # "instanceLocation": "", 368s # "keywordLocation": "/exclusiveMinimum" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 1271 - optional/cross-draft.json: "refs to historic drafts are processed as historic drafts" - "first item not a string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 1272 - optional/dependencies-compatibility.json: "single dependency" - "neither" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1273 - optional/dependencies-compatibility.json: "single dependency" - "nondependant" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1274 - optional/dependencies-compatibility.json: "single dependency" - "with dependency" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1275 - optional/dependencies-compatibility.json: "single dependency" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "bar": [ 368s # "foo" 368s # ] 368s # } 368s # } 368s # data: { 368s # "bar": 2 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1276 - optional/dependencies-compatibility.json: "single dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1277 - optional/dependencies-compatibility.json: "single dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1278 - optional/dependencies-compatibility.json: "single dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1279 - optional/dependencies-compatibility.json: "empty dependents" - "empty object" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1280 - optional/dependencies-compatibility.json: "empty dependents" - "object with one property" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1281 - optional/dependencies-compatibility.json: "empty dependents" - "non-object is valid" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1282 - optional/dependencies-compatibility.json: "multiple dependents required" - "neither" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1283 - optional/dependencies-compatibility.json: "multiple dependents required" - "nondependants" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1284 - optional/dependencies-compatibility.json: "multiple dependents required" - "with dependencies" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1285 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "quux": [ 368s # "foo", 368s # "bar" 368s # ] 368s # } 368s # } 368s # data: { 368s # "foo": 1, 368s # "quux": 2 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1286 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing other dependency" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "quux": [ 368s # "foo", 368s # "bar" 368s # ] 368s # } 368s # } 368s # data: { 368s # "bar": 1, 368s # "quux": 2 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1287 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing both dependencies" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "quux": [ 368s # "foo", 368s # "bar" 368s # ] 368s # } 368s # } 368s # data: { 368s # "quux": 1 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1288 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1289 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1290 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF missing dependent" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "foo\nbar": [ 368s # "foo\rbar" 368s # ], 368s # "foo\"bar": [ 368s # "foo'bar" 368s # ] 368s # } 368s # } 368s # data: { 368s # "foo": 2, 368s # "foo\nbar": 1 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1291 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "foo\nbar": [ 368s # "foo\rbar" 368s # ], 368s # "foo\"bar": [ 368s # "foo'bar" 368s # ] 368s # } 368s # } 368s # data: { 368s # "foo\"bar": 2 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1292 - optional/dependencies-compatibility.json: "single schema dependency" - "valid" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1293 - optional/dependencies-compatibility.json: "single schema dependency" - "no dependency" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1294 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "bar": { 368s # "properties": { 368s # "bar": { 368s # "type": "integer" 368s # }, 368s # "foo": { 368s # "type": "integer" 368s # } 368s # } 368s # } 368s # } 368s # } 368s # data: { 368s # "bar": 2, 368s # "foo": "quux" 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1295 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type other" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "bar": { 368s # "properties": { 368s # "bar": { 368s # "type": "integer" 368s # }, 368s # "foo": { 368s # "type": "integer" 368s # } 368s # } 368s # } 368s # } 368s # } 368s # data: { 368s # "bar": "quux", 368s # "foo": 2 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1296 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type both" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "bar": { 368s # "properties": { 368s # "bar": { 368s # "type": "integer" 368s # }, 368s # "foo": { 368s # "type": "integer" 368s # } 368s # } 368s # } 368s # } 368s # } 368s # data: { 368s # "bar": "quux", 368s # "foo": "quux" 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1297 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1298 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1299 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1300 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema true is valid" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1301 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema false is invalid" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "bar": false, 368s # "foo": true 368s # } 368s # } 368s # data: { 368s # "bar": 2 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1302 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with both properties is invalid" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "bar": false, 368s # "foo": true 368s # } 368s # } 368s # data: { 368s # "bar": 2, 368s # "foo": 1 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1303 - optional/dependencies-compatibility.json: "boolean subschemas" - "empty object is valid" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1304 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s ok 1305 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "foo\tbar": { 368s # "minProperties": 4 368s # }, 368s # "foo'bar": { 368s # "required": [ 368s # "foo\"bar" 368s # ] 368s # } 368s # } 368s # } 368s # data: { 368s # "foo'bar": { 368s # "foo\"bar": 1 368s # } 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1306 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "foo\tbar": { 368s # "minProperties": 4 368s # }, 368s # "foo'bar": { 368s # "required": [ 368s # "foo\"bar" 368s # ] 368s # } 368s # } 368s # } 368s # data: { 368s # "a": 2, 368s # "foo\tbar": 1 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1307 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "dependencies": { 368s # "foo\tbar": { 368s # "minProperties": 4 368s # }, 368s # "foo'bar": { 368s # "required": [ 368s # "foo\"bar" 368s # ] 368s # } 368s # } 368s # } 368s # data: { 368s # "foo'bar": 1 368s # } 368s # result: 1 368s 1..1 368s } 368s # 368s ok 1308 - optional/dynamicRef.json: "$dynamicRef skips over intermediate resources - pointer reference across resource boundary" - "integer property passes" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1309 - optional/dynamicRef.json: "$dynamicRef skips over intermediate resources - pointer reference across resource boundary" - "string property fails" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/$defs/defaultContent/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar-item/content", 368s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/bar-item", 368s # "keywordLocation": "/properties/bar-item/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/main#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/$defs/defaultContent/type", 368s # "error": "got string, not integer", 368s # "instanceLocation": "/bar-item/content", 368s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "/bar-item", 368s # "keywordLocation": "/properties/bar-item/$ref/properties" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/main#/properties", 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/properties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 1310 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1311 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1312 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1313 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1314 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1315 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1316 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1317 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1318 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s 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" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "pattern": "^\\d$", 368s # "type": "string" 368s # } 368s # data: "߀" 368s # result: 1 368s 1..1 368s } 368s 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" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "pattern": "^\\d$", 368s # "type": "string" 368s # } 368s # data: "߀" 368s # result: 1 368s 1..1 368s } 368s 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" 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false # 368s 1..1 368s } 368s 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" 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected true; got false 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "pattern": "^\\D$", 368s # "type": "string" 368s # } 368s # data: "߀" 368s # result: 0 368s 1..1 368s } 368s 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" 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected true; got false 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "pattern": "^\\D$", 368s # "type": "string" 368s # } 368s # data: "߀" 368s # result: 0 368s 1..1 368s } 368s ok 1324 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true # 368s 1..1 368s } 368s 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" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "pattern": "^\\w$", 368s # "type": "string" 368s # } 368s # data: "é" 368s # result: 1 368s 1..1 368s } 368s 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" 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false # 368s 1..1 368s } 368s 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" 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected true; got false 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "pattern": "^\\W$", 368s # "type": "string" 368s # } 368s # data: "é" 368s # result: 0 368s 1..1 368s } 368s ok 1328 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1329 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1330 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1331 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1332 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1333 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected true; got false 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "pattern": "^\\s$", 368s # "type": "string" 368s # } 368s # data: "" 368s # result: 0 368s 1..1 368s } 368s ok 1334 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1335 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1336 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1337 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1338 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1339 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1340 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1341 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1342 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1343 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s 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" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "pattern": "^\\S$", 368s # "type": "string" 368s # } 368s # data: "" 368s # result: 1 368s 1..1 368s } 368s ok 1345 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1346 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1347 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1348 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1349 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1350 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1351 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1352 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1353 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1354 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "pattern": "\\wcole" 368s # } 368s # 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." 368s # result: 1 368s 1..1 368s } 368s 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" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "pattern": "\\wcole" 368s # } 368s # 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." 368s # result: 1 368s 1..1 368s } 368s ok 1357 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1358 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1359 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1360 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1361 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1362 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s 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" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "pattern": "^\\d+$" 368s # } 368s # data: "৪২" 368s # result: 1 368s 1..1 368s } 368s ok 1364 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1365 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1366 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1367 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1368 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1369 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1370 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/L'ÉCOLE", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/L'ÉCOLE", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1371 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s 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" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "additionalProperties": false, 368s # "patternProperties": { 368s # "\\wcole": true 368s # }, 368s # "type": "object" 368s # } 368s # data: { 368s # "l'école": "pas de vraie vie" 368s # } 368s # result: 1 368s 1..1 368s } 368s 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" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "additionalProperties": false, 368s # "patternProperties": { 368s # "\\wcole": true 368s # }, 368s # "type": "object" 368s # } 368s # data: { 368s # "l'école": "pas de vraie vie" 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1374 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/L'ÉCOLE", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/L'ÉCOLE", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1375 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/l'école", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/l'école", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1376 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/l'école", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/l'école", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1377 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1378 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1379 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/-%#", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/-%#", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s 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" 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected false; got true 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "additionalProperties": false, 368s # "patternProperties": { 368s # "^\\d+$": true 368s # }, 368s # "type": "object" 368s # } 368s # data: { 368s # "৪২": "khajit has wares if you have coin" 368s # } 368s # result: 1 368s 1..1 368s } 368s ok 1381 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1382 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/-%#", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "additional property not permitted", 368s # "instanceLocation": "/-%#", 368s # "keywordLocation": "/additionalProperties" 368s # }, 368s # { 368s # "error": "not all additional properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/additionalProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1383 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 1384 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 1385 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: valid string" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1386 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: invalid string" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 368s # "error": "not a valid ipv4", 368s # "instanceLocation": "", 368s # "keywordLocation": "/format" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 368s # "error": "not a valid ipv4", 368s # "instanceLocation": "", 368s # "keywordLocation": "/format" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1387 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: valid string" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1388 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: invalid string" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 368s # "error": "not a valid ipv4", 368s # "instanceLocation": "", 368s # "keywordLocation": "/format" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 368s # "error": "not a valid ipv4", 368s # "instanceLocation": "", 368s # "keywordLocation": "/format" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 1389 - optional/id.json: "$id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1390 - optional/id.json: "$id inside an enum is not a real identifier" - "match $ref to $id" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1391 - optional/id.json: "$id inside an enum is not a real identifier" - "no match on enum or $ref to $id" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/$ref/enum" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/id/my_identifier.json#/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/$ref/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 368s # "error": "value does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/$ref/enum" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/id/my_identifier.json#/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/$ref/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 1392 - optional/no-schema.json: "validation without $schema" - "a 3-character string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1393 - optional/no-schema.json: "validation without $schema" - "a 1-character string is not valid" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "length is less than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minLength" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "length is less than 2", 368s # "instanceLocation": "", 368s # "keywordLocation": "/minLength" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1394 - optional/no-schema.json: "validation without $schema" - "a non-string is valid" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s # 368s ok 1395 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1396 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1397 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1398 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1399 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1400 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1401 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "pattern does not match", 368s # "instanceLocation": "", 368s # "keywordLocation": "/pattern" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1402 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1403 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1404 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1405 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/🐲", 368s # "keywordLocation": "/patternProperties/^🐲*$/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/🐲", 368s # "keywordLocation": "/patternProperties/^🐲*$/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1406 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/🐲🐲", 368s # "keywordLocation": "/patternProperties/^🐲*$/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "got string, not integer", 368s # "instanceLocation": "/🐲🐲", 368s # "keywordLocation": "/patternProperties/^🐲*$/type" 368s # }, 368s # { 368s # "error": "not all properties are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/patternProperties" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s ok 1407 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "match" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected true; got false 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "properties": { 368s # "bar": { 368s # "$ref": "#/unknown-keyword" 368s # } 368s # }, 368s # "unknown-keyword": { 368s # "type": "integer" 368s # } 368s # } 368s # data: { 368s # "bar": 3 368s # } 368s # result: null 368s 1..1 368s } 368s ok 1408 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "mismatch" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "EXCEPTION: bad reference to \"#/unknown-keyword\": not a schema", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false # 368s 1..1 368s } 368s ok 1409 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "match" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected true; got false 368s # schema: { 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "properties": { 368s # "bar": { 368s # "$ref": "#/properties/foo/unknown-keyword" 368s # }, 368s # "foo": { 368s # "unknown-keyword": { 368s # "type": "integer" 368s # } 368s # } 368s # } 368s # } 368s # data: { 368s # "bar": 3 368s # } 368s # result: null 368s 1..1 368s } 368s ok 1410 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "mismatch" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "errors": [ 368s # { 368s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "error": "EXCEPTION: bad reference to \"#/properties/foo/unknown-keyword\": not a schema", 368s # "instanceLocation": "/bar", 368s # "keywordLocation": "/properties/bar/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false # 368s 1..1 368s } 368s ok 1411 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "match" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "/base#/$ref", 368s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "/base#/$ref", 368s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s not ok 1 - evaluation result is incorrect # 368s # Failed test (with amnesty) 'evaluation result is incorrect' 368s # at t/zzz-acceptance-draft2020-12.t line 53. 368s # expected true; got false 368s # schema: { 368s # "$id": "/base", 368s # "$ref": "#/examples/0", 368s # "$schema": "https://json-schema.org/draft/2020-12/schema", 368s # "examples": [ 368s # { 368s # "type": "string" 368s # } 368s # ] 368s # } 368s # data: "a string" 368s # result: null 368s 1..1 368s } 368s ok 1412 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "mismatch" { # TODO Test marked TODO via "todo_tests" 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "/base#/$ref", 368s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "/base#/$ref", 368s # "error": "EXCEPTION: bad reference to \"/base#/examples/0\": not a schema", 368s # "instanceLocation": "", 368s # "keywordLocation": "/$ref" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false # 368s 1..1 368s } 368s # 368s 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" { 368s # result: { 368s # "valid": true 368s # } 368s # short-circuited result: { 368s # "valid": true 368s # } 368s ok 1 - test passes: data is valid: true 368s 1..1 368s } 368s ok 1414 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/$ref/not" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/$ref/not" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 368s # "error": "got null, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/2/$ref/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/$ref/not" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/$ref/not" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 368s # "error": "got null, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/2/$ref/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s ok 1415 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 368s # result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/$ref/not" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/$ref/not" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/2/$ref/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s # short-circuited result: { 368s # "errors": [ 368s # { 368s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/0/$ref/not" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 368s # "error": "subschema is valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/1/$ref/not" 368s # }, 368s # { 368s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 368s # "error": "got integer, not string", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf/2/$ref/type" 368s # }, 368s # { 368s # "error": "no subschemas are valid", 368s # "instanceLocation": "", 368s # "keywordLocation": "/anyOf" 368s # } 368s # ], 368s # "valid": false 368s # } 368s ok 1 - test passes: data is valid: false 368s 1..1 368s } 368s # 368s # generated with: Test::JSON::Schema::Acceptance 1.029 368s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 368s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 368s # specification version: draft2020-12 368s # optional tests included: yes 368s # skipping directory: optional/format 368s # 368s # filename pass todo-fail fail 368s # --------------------------------------------------------------- 368s # additionalProperties.json 21 0 0 368s # allOf.json 30 0 0 368s # anchor.json 8 0 0 368s # anyOf.json 18 0 0 368s # boolean_schema.json 18 0 0 368s # const.json 50 0 0 368s # contains.json 21 0 0 368s # content.json 18 0 0 368s # default.json 7 0 0 368s # defs.json 2 0 0 368s # dependentRequired.json 20 0 0 368s # dependentSchemas.json 20 0 0 368s # dynamicRef.json 42 0 0 368s # enum.json 45 0 0 368s # exclusiveMaximum.json 4 0 0 368s # exclusiveMinimum.json 4 0 0 368s # format.json 133 0 0 368s # if-then-else.json 26 0 0 368s # infinite-loop-detection.json 2 0 0 368s # items.json 29 0 0 368s # maxContains.json 12 0 0 368s # maxItems.json 6 0 0 368s # maxLength.json 7 0 0 368s # maxProperties.json 10 0 0 368s # maximum.json 8 0 0 368s # minContains.json 28 0 0 368s # minItems.json 6 0 0 368s # minLength.json 7 0 0 368s # minProperties.json 8 0 0 368s # minimum.json 11 0 0 368s # multipleOf.json 10 0 0 368s # not.json 40 0 0 368s # oneOf.json 27 0 0 368s # pattern.json 9 0 0 368s # patternProperties.json 23 0 0 368s # prefixItems.json 11 0 0 368s # properties.json 28 0 0 368s # propertyNames.json 20 0 0 368s # ref.json 77 0 0 368s # refRemote.json 31 0 0 368s # required.json 16 0 0 368s # type.json 80 0 0 368s # unevaluatedItems.json 66 0 0 368s # unevaluatedProperties.json 124 0 0 368s # uniqueItems.json 69 0 0 368s # vocabulary.json 5 0 0 368s # optional/anchor.json 4 0 0 368s # optional/bignum.json 9 0 0 368s # optional/cross-draft.json 1 0 0 368s # optional/dependencies-compatibility.json 22 14 0 368s # optional/dynamicRef.json 2 0 0 368s # optional/ecmascript-regex.json 60 14 0 368s # optional/float-overflow.json 1 0 0 368s # optional/format-assertion.json 4 0 0 368s # optional/id.json 3 0 0 368s # optional/no-schema.json 3 0 0 368s # optional/non-bmp-regex.json 12 0 0 368s # optional/refOfUnknownKeyword.json 3 3 0 368s # optional/unknownKeyword.json 3 0 0 368s # --------------------------------------------------------------- 368s # TOTAL 1384 31 0 368s # 368s # Congratulations, all non-optional tests are passing! 368s # 368s ok 1416 - no leaks in the main evaluator object 368s ok 1417 - no leaks in the short-circuiting evaluator object 368s 1..1417 368s ok 371s t/zzz-acceptance-draft4-format.t ........ 371s # 371s # AUTHOR_TESTING: 371s # AUTOMATED_TESTING: 1 371s # EXTENDED_TESTING: 371s # NO_TODO: 371s # TEST_DIR: 371s # NO_SHORT_CIRCUIT: 371s # 371s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft4/optional/format against draft4... 371s # 371s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid date-time string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s # 371s ok 26 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 27 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 28 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 29 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 30 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 31 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 32 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 33 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid email string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid email string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 34 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 35 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 36 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 37 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid email string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid email string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 38 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid email string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid email string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 39 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 40 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid email string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid email string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s # 371s ok 41 - hostname.json: "validation of host names" - "all string formats ignore integers" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 42 - hostname.json: "validation of host names" - "all string formats ignore floats" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 43 - hostname.json: "validation of host names" - "all string formats ignore objects" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 44 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 45 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 46 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 47 - hostname.json: "validation of host names" - "a valid host name" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 48 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 49 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 50 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 51 - hostname.json: "validation of host names" - "a host name with a component too long" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 52 - hostname.json: "validation of host names" - "starts with hyphen" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 53 - hostname.json: "validation of host names" - "ends with hyphen" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 54 - hostname.json: "validation of host names" - "starts with underscore" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 55 - hostname.json: "validation of host names" - "ends with underscore" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 56 - hostname.json: "validation of host names" - "contains underscore" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 57 - hostname.json: "validation of host names" - "maximum label length" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 58 - hostname.json: "validation of host names" - "exceeds maximum label length" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 59 - hostname.json: "validation of host names" - "single label" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 60 - hostname.json: "validation of host names" - "single label with hyphen" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 61 - hostname.json: "validation of host names" - "single label with digits" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 62 - hostname.json: "validation of host names" - "single label ending with digit" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 63 - hostname.json: "validation of host names" - "empty string" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 64 - hostname.json: "validation of host names" - "single dot" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid hostname string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s # 371s ok 65 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 66 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 67 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 68 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 69 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 70 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 71 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 72 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 73 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 74 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 75 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 76 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 77 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 78 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 79 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 80 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv4 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s # 371s ok 81 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 82 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 83 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 84 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 85 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 86 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 87 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 88 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 89 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 90 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 91 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 92 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 93 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 94 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 95 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 96 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 97 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 98 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 99 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 100 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 101 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 102 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 103 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 104 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 105 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 106 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 107 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 108 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 109 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 110 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 111 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 112 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 113 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 114 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 115 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 116 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 117 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 118 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 119 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 120 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid ipv6 string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s # 371s ok 121 - unknown.json: "unknown format" - "unknown formats ignore integers" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 122 - unknown.json: "unknown format" - "unknown formats ignore floats" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 123 - unknown.json: "unknown format" - "unknown formats ignore objects" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 124 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 125 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 126 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 127 - unknown.json: "unknown format" - "unknown formats ignore strings" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s # 371s ok 128 - uri.json: "validation of URIs" - "all string formats ignore integers" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 129 - uri.json: "validation of URIs" - "all string formats ignore floats" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 130 - uri.json: "validation of URIs" - "all string formats ignore objects" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 131 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 132 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 133 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 134 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 135 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 136 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 137 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 138 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 139 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 140 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 141 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 142 - uri.json: "validation of URIs" - "a valid URL " { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 143 - uri.json: "validation of URIs" - "a valid mailto URI" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 144 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 145 - uri.json: "validation of URIs" - "a valid tel URI" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 146 - uri.json: "validation of URIs" - "a valid URN" { 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s ok 1 - test passes: data is valid: true 371s 1..1 371s } 371s ok 147 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid uri string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid uri string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 148 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid uri string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid uri string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 149 - uri.json: "validation of URIs" - "an invalid URI" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid uri string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid uri string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 150 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid uri string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid uri string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 151 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid uri string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid uri string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 152 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 371s # result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid uri string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s # short-circuited result: { 371s # "errors": [ 371s # { 371s # "error": "not a valid uri string", 371s # "instanceLocation": "", 371s # "keywordLocation": "/format" 371s # } 371s # ], 371s # "valid": false 371s # } 371s ok 1 - test passes: data is valid: false 371s 1..1 371s } 371s ok 153 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 371s # result: { 371s # "valid": true 371s # } 371s # short-circuited result: { 371s # "valid": true 371s # } 371s not ok 1 - evaluation result is incorrect # 371s # Failed test (with amnesty) 'evaluation result is incorrect' 371s # at t/zzz-acceptance-draft4-format.t line 65. 371s # expected false; got true 371s # schema: { 371s # "format": "uri" 371s # } 371s # data: "bar,baz:foo" 371s # result: 1 371s 1..1 371s } 371s # 371s # generated with: Test::JSON::Schema::Acceptance 1.029 371s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 371s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 371s # specification version: draft4 371s # using custom test directory: /optional/format 371s # optional tests included: yes 371s # 371s # filename pass todo-fail fail 371s # --------------------------------------------------------------- 371s # date-time.json 25 0 0 371s # email.json 15 0 0 371s # hostname.json 24 0 0 371s # ipv4.json 16 0 0 371s # ipv6.json 40 0 0 371s # unknown.json 7 0 0 371s # uri.json 25 1 0 371s # --------------------------------------------------------------- 371s # TOTAL 152 1 0 371s # 371s # Congratulations, all non-optional tests are passing! 371s # 371s ok 154 - no leaks in the main evaluator object 371s ok 155 - no leaks in the short-circuiting evaluator object 371s 1..155 371s ok 380s t/zzz-acceptance-draft4.t ............... 380s # 380s # AUTHOR_TESTING: 380s # AUTOMATED_TESTING: 1 380s # EXTENDED_TESTING: 380s # NO_TODO: 380s # TEST_DIR: 380s # NO_SHORT_CIRCUIT: 380s # 380s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 380s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft4 against draft4... 380s # 380s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/3", 380s # "keywordLocation": "/additionalItems/type" 380s # }, 380s # { 380s # "error": "subschema is not valid against all additional items", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalItems" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/3", 380s # "keywordLocation": "/additionalItems/type" 380s # }, 380s # { 380s # "error": "subschema is not valid against all additional items", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalItems" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "all items match schema" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 4 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 5 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "additional item not permitted", 380s # "instanceLocation": "/3", 380s # "keywordLocation": "/additionalItems" 380s # }, 380s # { 380s # "error": "subschema is not valid against all additional items", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalItems" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "additional item not permitted", 380s # "instanceLocation": "/3", 380s # "keywordLocation": "/additionalItems" 380s # }, 380s # { 380s # "error": "subschema is not valid against all additional items", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalItems" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 9 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 10 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 11 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 12 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 13 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not boolean", 380s # "instanceLocation": "/1", 380s # "keywordLocation": "/additionalItems/type" 380s # }, 380s # { 380s # "error": "subschema is not valid against all additional items", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalItems" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not boolean", 380s # "instanceLocation": "/1", 380s # "keywordLocation": "/additionalItems/type" 380s # }, 380s # { 380s # "error": "subschema is not valid against all additional items", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalItems" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 14 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 15 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/1", 380s # "keywordLocation": "/additionalItems/type" 380s # }, 380s # { 380s # "error": "subschema is not valid against all additional items", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalItems" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/1", 380s # "keywordLocation": "/additionalItems/type" 380s # }, 380s # { 380s # "error": "subschema is not valid against all additional items", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalItems" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 16 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "additional item not permitted", 380s # "instanceLocation": "/1", 380s # "keywordLocation": "/additionalItems" 380s # }, 380s # { 380s # "error": "additional item not permitted", 380s # "instanceLocation": "/2", 380s # "keywordLocation": "/additionalItems" 380s # }, 380s # { 380s # "error": "subschema is not valid against all additional items", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalItems" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "additional item not permitted", 380s # "instanceLocation": "/1", 380s # "keywordLocation": "/additionalItems" 380s # }, 380s # { 380s # "error": "subschema is not valid against all additional items", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalItems" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 17 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 18 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s # 380s ok 19 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 20 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "additional property not permitted", 380s # "instanceLocation": "/quux", 380s # "keywordLocation": "/additionalProperties" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalProperties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "additional property not permitted", 380s # "instanceLocation": "/quux", 380s # "keywordLocation": "/additionalProperties" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalProperties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 25 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 26 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "additional property not permitted", 380s # "instanceLocation": "/élmény", 380s # "keywordLocation": "/additionalProperties" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalProperties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "additional property not permitted", 380s # "instanceLocation": "/élmény", 380s # "keywordLocation": "/additionalProperties" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalProperties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 27 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 28 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 29 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got integer, not boolean", 380s # "instanceLocation": "/quux", 380s # "keywordLocation": "/additionalProperties/type" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalProperties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got integer, not boolean", 380s # "instanceLocation": "/quux", 380s # "keywordLocation": "/additionalProperties/type" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalProperties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 30 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 31 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got integer, not boolean", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/additionalProperties/type" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalProperties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got integer, not boolean", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/additionalProperties/type" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalProperties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 32 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 33 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got integer, not boolean", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/additionalProperties/type" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalProperties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got integer, not boolean", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/additionalProperties/type" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/additionalProperties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 34 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s # 380s ok 35 - allOf.json: "allOf" - "allOf" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 36 - allOf.json: "allOf" - "mismatch second" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/required" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/required" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 37 - allOf.json: "allOf" - "mismatch first" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/1/required" 380s # }, 380s # { 380s # "error": "subschema 1 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/1/required" 380s # }, 380s # { 380s # "error": "subschema 1 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 38 - allOf.json: "allOf" - "wrong type" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/bar", 380s # "keywordLocation": "/allOf/0/properties/bar/type" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/properties" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/bar", 380s # "keywordLocation": "/allOf/0/properties/bar/type" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/properties" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 39 - allOf.json: "allOf with base schema" - "valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 40 - allOf.json: "allOf with base schema" - "mismatch base schema" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/required" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/required" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 41 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/required" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/required" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 42 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: baz", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/1/required" 380s # }, 380s # { 380s # "error": "subschema 1 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: baz", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/1/required" 380s # }, 380s # { 380s # "error": "subschema 1 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 43 - allOf.json: "allOf with base schema" - "mismatch both" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/required" 380s # }, 380s # { 380s # "error": "object is missing property: baz", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/1/required" 380s # }, 380s # { 380s # "error": "subschemas 0, 1 are not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/required" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 44 - allOf.json: "allOf simple types" - "valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 45 - allOf.json: "allOf simple types" - "mismatch one" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value is greater than 30", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/maximum" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value is greater than 30", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/maximum" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 46 - allOf.json: "allOf with one empty schema" - "any data is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 47 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 48 - allOf.json: "allOf with the first empty schema" - "number is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 49 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not number", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/1/type" 380s # }, 380s # { 380s # "error": "subschema 1 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not number", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/1/type" 380s # }, 380s # { 380s # "error": "subschema 1 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 50 - allOf.json: "allOf with the last empty schema" - "number is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 51 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not number", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/type" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not number", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/type" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 52 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 53 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got integer, not null", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/allOf/0/type" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/allOf" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got integer, not null", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/allOf/0/type" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/allOf" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 54 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 2", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # }, 380s # { 380s # "error": "value is not a multiple of 3", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # }, 380s # { 380s # "error": "value is not a multiple of 5", 380s # "instanceLocation": "", 380s # "keywordLocation": "/oneOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/oneOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 2", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 55 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 2", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # }, 380s # { 380s # "error": "value is not a multiple of 3", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 2", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 56 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 2", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # }, 380s # { 380s # "error": "value is not a multiple of 5", 380s # "instanceLocation": "", 380s # "keywordLocation": "/oneOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/oneOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 2", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 57 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 2", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 2", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "subschema 0 is not valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/allOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 58 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 3", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # }, 380s # { 380s # "error": "value is not a multiple of 5", 380s # "instanceLocation": "", 380s # "keywordLocation": "/oneOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/oneOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 3", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 3", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 3", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 5", 380s # "instanceLocation": "", 380s # "keywordLocation": "/oneOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/oneOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value is not a multiple of 5", 380s # "instanceLocation": "", 380s # "keywordLocation": "/oneOf/0/multipleOf" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/oneOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s # 380s ok 62 - anyOf.json: "anyOf" - "first anyOf valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 63 - anyOf.json: "anyOf" - "second anyOf valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 64 - anyOf.json: "anyOf" - "both anyOf valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 65 - anyOf.json: "anyOf" - "neither anyOf valid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got number, not integer", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/type" 380s # }, 380s # { 380s # "error": "value is less than 2", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/1/minimum" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got number, not integer", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/type" 380s # }, 380s # { 380s # "error": "value is less than 2", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/1/minimum" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 66 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got integer, not string", 380s # "instanceLocation": "", 380s # "keywordLocation": "/type" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got integer, not string", 380s # "instanceLocation": "", 380s # "keywordLocation": "/type" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 67 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 68 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "length is greater than 2", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/maxLength" 380s # }, 380s # { 380s # "error": "length is less than 4", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/1/minLength" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "length is greater than 2", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/maxLength" 380s # }, 380s # { 380s # "error": "length is less than 4", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/1/minLength" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 69 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 70 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 71 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 72 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/bar", 380s # "keywordLocation": "/anyOf/0/properties/bar/type" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/properties" 380s # }, 380s # { 380s # "error": "got integer, not string", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/anyOf/1/properties/foo/type" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/1/properties" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/bar", 380s # "keywordLocation": "/anyOf/0/properties/bar/type" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/properties" 380s # }, 380s # { 380s # "error": "got integer, not string", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/anyOf/1/properties/foo/type" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/1/properties" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 73 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 74 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 75 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 76 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got integer, not null", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/anyOf/0/type" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/anyOf" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got integer, not null", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/anyOf/0/type" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf/0/anyOf" 380s # }, 380s # { 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/anyOf" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s # 380s ok 77 - default.json: "invalid type for default" - "valid when property is specified" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 78 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 79 - default.json: "invalid string value for default" - "valid when property is specified" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 80 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s 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)" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s 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)" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value is greater than 3", 380s # "instanceLocation": "/alpha", 380s # "keywordLocation": "/properties/alpha/maximum" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/properties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value is greater than 3", 380s # "instanceLocation": "/alpha", 380s # "keywordLocation": "/properties/alpha/maximum" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/properties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s 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" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s # 380s ok 84 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 85 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 380s # result: { 380s # "errors": [ 380s # { 380s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/simpleTypes/enum", 380s # "error": "value does not match", 380s # "instanceLocation": "/definitions/foo/type", 380s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 380s # }, 380s # { 380s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf/1/type", 380s # "error": "got integer, not array", 380s # "instanceLocation": "/definitions/foo/type", 380s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 380s # }, 380s # { 380s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf", 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "/definitions/foo/type", 380s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 380s # }, 380s # { 380s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 380s # "error": "not all properties are valid", 380s # "instanceLocation": "/definitions/foo", 380s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 380s # }, 380s # { 380s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/definitions/additionalProperties", 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "/definitions", 380s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 380s # }, 380s # { 380s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/$ref/properties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/simpleTypes/enum", 380s # "error": "value does not match", 380s # "instanceLocation": "/definitions/foo/type", 380s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 380s # }, 380s # { 380s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf/1/type", 380s # "error": "got integer, not array", 380s # "instanceLocation": "/definitions/foo/type", 380s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 380s # }, 380s # { 380s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf", 380s # "error": "no subschemas are valid", 380s # "instanceLocation": "/definitions/foo/type", 380s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 380s # }, 380s # { 380s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 380s # "error": "not all properties are valid", 380s # "instanceLocation": "/definitions/foo", 380s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 380s # }, 380s # { 380s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/definitions/additionalProperties", 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "/definitions", 380s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 380s # }, 380s # { 380s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/$ref/properties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s # 380s ok 86 - dependencies.json: "dependencies" - "neither" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 87 - dependencies.json: "dependencies" - "nondependant" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 88 - dependencies.json: "dependencies" - "with dependency" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 89 - dependencies.json: "dependencies" - "missing dependency" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/bar" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/bar" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 90 - dependencies.json: "dependencies" - "ignores arrays" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 91 - dependencies.json: "dependencies" - "ignores strings" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 92 - dependencies.json: "dependencies" - "ignores other non-objects" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 93 - dependencies.json: "multiple dependencies" - "neither" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 94 - dependencies.json: "multiple dependencies" - "nondependants" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 95 - dependencies.json: "multiple dependencies" - "with dependencies" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 96 - dependencies.json: "multiple dependencies" - "missing dependency" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/quux" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/quux" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 97 - dependencies.json: "multiple dependencies" - "missing other dependency" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/quux" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/quux" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 98 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing properties: foo, bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/quux" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing properties: foo, bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/quux" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 99 - dependencies.json: "multiple dependencies subschema" - "valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 100 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 101 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/dependencies/bar/properties/foo/type" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/bar/properties" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/dependencies/bar/properties/foo/type" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/bar/properties" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 102 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/bar", 380s # "keywordLocation": "/dependencies/bar/properties/bar/type" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/bar/properties" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/bar", 380s # "keywordLocation": "/dependencies/bar/properties/bar/type" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/bar/properties" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 103 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/bar", 380s # "keywordLocation": "/dependencies/bar/properties/bar/type" 380s # }, 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/dependencies/bar/properties/foo/type" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/bar/properties" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "got string, not integer", 380s # "instanceLocation": "/bar", 380s # "keywordLocation": "/dependencies/bar/properties/bar/type" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/bar/properties" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 104 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 105 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 106 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 107 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo\rbar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/foo\nbar" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo\rbar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/foo\nbar" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 108 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object has fewer than 4 properties", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object has fewer than 4 properties", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 109 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo\"bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/foo'bar/required" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo\"bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/foo'bar/required" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 110 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo'bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/foo\"bar" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: foo'bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/foo\"bar" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 111 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "additional property not permitted", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/dependencies/foo/additionalProperties" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/foo/additionalProperties" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "additional property not permitted", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/dependencies/foo/additionalProperties" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/foo/additionalProperties" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 112 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 113 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "additional property not permitted", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/dependencies/foo/additionalProperties" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/foo/additionalProperties" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "additional property not permitted", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/dependencies/foo/additionalProperties" 380s # }, 380s # { 380s # "error": "not all additional properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies/foo/additionalProperties" 380s # }, 380s # { 380s # "error": "not all dependencies are satisfied", 380s # "instanceLocation": "", 380s # "keywordLocation": "/dependencies" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 114 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s # 380s ok 115 - enum.json: "simple enum validation" - "one of the enum is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 116 - enum.json: "simple enum validation" - "something else is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 117 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 118 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 119 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 380s # result: { 380s # "errors": [ 380s # { 380s # "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)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "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)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 120 - enum.json: "heterogeneous enum validation" - "valid object matches" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 121 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 122 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 123 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 124 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 125 - enum.json: "enums in properties" - "both properties are valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 126 - enum.json: "enums in properties" - "wrong foo value" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/properties/foo/enum" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/properties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "/foo", 380s # "keywordLocation": "/properties/foo/enum" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/properties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 127 - enum.json: "enums in properties" - "wrong bar value" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "/bar", 380s # "keywordLocation": "/properties/bar/enum" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/properties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "/bar", 380s # "keywordLocation": "/properties/bar/enum" 380s # }, 380s # { 380s # "error": "not all properties are valid", 380s # "instanceLocation": "", 380s # "keywordLocation": "/properties" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 128 - enum.json: "enums in properties" - "missing optional property is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 129 - enum.json: "enums in properties" - "missing required property is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/required" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/required" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 130 - enum.json: "enums in properties" - "missing all properties is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/required" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "object is missing property: bar", 380s # "instanceLocation": "", 380s # "keywordLocation": "/required" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 131 - enum.json: "enum with escaped characters" - "member 1 is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 132 - enum.json: "enum with escaped characters" - "member 2 is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 133 - enum.json: "enum with escaped characters" - "another string is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 134 - enum.json: "enum with false does not match 0" - "false is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 135 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 136 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 137 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 138 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 139 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 140 - enum.json: "enum with true does not match 1" - "true is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 141 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 142 - enum.json: "enum with true does not match 1" - "float one is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 143 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 144 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 145 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 146 - enum.json: "enum with 0 does not match false" - "false is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 147 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 148 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 149 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 150 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 151 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 152 - enum.json: "enum with 1 does not match true" - "true is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 153 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 154 - enum.json: "enum with 1 does not match true" - "float one is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 155 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 380s # result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s # short-circuited result: { 380s # "errors": [ 380s # { 380s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 380s # "instanceLocation": "", 380s # "keywordLocation": "/enum" 380s # } 380s # ], 380s # "valid": false 380s # } 380s ok 1 - test passes: data is valid: false 380s 1..1 380s } 380s ok 156 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 157 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 380s ok 1 - test passes: data is valid: true 380s 1..1 380s } 380s ok 158 - enum.json: "nul characters in strings" - "match string with nul" { 380s # result: { 380s # "valid": true 380s # } 380s # short-circuited result: { 380s # "valid": true 380s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 159 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/enum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/enum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s ok 160 - format.json: "email format" - "all string formats ignore integers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 161 - format.json: "email format" - "all string formats ignore floats" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 162 - format.json: "email format" - "all string formats ignore objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 163 - format.json: "email format" - "all string formats ignore arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 164 - format.json: "email format" - "all string formats ignore booleans" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 165 - format.json: "email format" - "all string formats ignore nulls" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 166 - format.json: "ipv4 format" - "all string formats ignore integers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 167 - format.json: "ipv4 format" - "all string formats ignore floats" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 168 - format.json: "ipv4 format" - "all string formats ignore objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 169 - format.json: "ipv4 format" - "all string formats ignore arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 170 - format.json: "ipv4 format" - "all string formats ignore booleans" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 171 - format.json: "ipv4 format" - "all string formats ignore nulls" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 172 - format.json: "ipv6 format" - "all string formats ignore integers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 173 - format.json: "ipv6 format" - "all string formats ignore floats" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 174 - format.json: "ipv6 format" - "all string formats ignore objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 175 - format.json: "ipv6 format" - "all string formats ignore arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 176 - format.json: "ipv6 format" - "all string formats ignore booleans" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 177 - format.json: "ipv6 format" - "all string formats ignore nulls" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 178 - format.json: "hostname format" - "all string formats ignore integers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 179 - format.json: "hostname format" - "all string formats ignore floats" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 180 - format.json: "hostname format" - "all string formats ignore objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 181 - format.json: "hostname format" - "all string formats ignore arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 182 - format.json: "hostname format" - "all string formats ignore booleans" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 183 - format.json: "hostname format" - "all string formats ignore nulls" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 184 - format.json: "date-time format" - "all string formats ignore integers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 185 - format.json: "date-time format" - "all string formats ignore floats" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 186 - format.json: "date-time format" - "all string formats ignore objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 187 - format.json: "date-time format" - "all string formats ignore arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 188 - format.json: "date-time format" - "all string formats ignore booleans" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 189 - format.json: "date-time format" - "all string formats ignore nulls" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 190 - format.json: "uri format" - "all string formats ignore integers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 191 - format.json: "uri format" - "all string formats ignore floats" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 192 - format.json: "uri format" - "all string formats ignore objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 193 - format.json: "uri format" - "all string formats ignore arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 194 - format.json: "uri format" - "all string formats ignore booleans" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 195 - format.json: "uri format" - "all string formats ignore nulls" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s 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" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s 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" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/int/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/properties" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "#/definitions/int/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/1/additionalProperties" 381s # }, 381s # { 381s # "error": "subschemas 0, 1 are not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/int/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/properties" 381s # }, 381s # { 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s ok 198 - items.json: "a schema given for items" - "valid items" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 199 - items.json: "a schema given for items" - "wrong type of items" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/1", 381s # "keywordLocation": "/items/type" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/1", 381s # "keywordLocation": "/items/type" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 200 - items.json: "a schema given for items" - "ignores non-arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 201 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 202 - items.json: "an array of schemas for items" - "correct types" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 203 - items.json: "an array of schemas for items" - "wrong types" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/0/type" 381s # }, 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "/1", 381s # "keywordLocation": "/items/1/type" 381s # }, 381s # { 381s # "error": "not all items are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/0/type" 381s # }, 381s # { 381s # "error": "not all items are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 204 - items.json: "an array of schemas for items" - "incomplete array of items" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 205 - items.json: "an array of schemas for items" - "array with additional items" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 206 - items.json: "an array of schemas for items" - "empty array" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 207 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 208 - items.json: "items and subitems" - "valid items" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 209 - items.json: "items and subitems" - "too many items" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "additional item not permitted", 381s # "instanceLocation": "/3", 381s # "keywordLocation": "/additionalItems" 381s # }, 381s # { 381s # "error": "subschema is not valid against all additional items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "additional item not permitted", 381s # "instanceLocation": "/3", 381s # "keywordLocation": "/additionalItems" 381s # }, 381s # { 381s # "error": "subschema is not valid against all additional items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 210 - items.json: "items and subitems" - "too many sub-items" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 381s # "error": "additional item not permitted", 381s # "instanceLocation": "/0/2", 381s # "keywordLocation": "/items/0/$ref/additionalItems" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 381s # "error": "subschema is not valid against all additional items", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/0/$ref/additionalItems" 381s # }, 381s # { 381s # "error": "not all items are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 381s # "error": "additional item not permitted", 381s # "instanceLocation": "/0/2", 381s # "keywordLocation": "/items/0/$ref/additionalItems" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 381s # "error": "subschema is not valid against all additional items", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/0/$ref/additionalItems" 381s # }, 381s # { 381s # "error": "not all items are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 211 - items.json: "items and subitems" - "wrong item" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/item/type", 381s # "error": "got object, not array", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/0/$ref/type" 381s # }, 381s # { 381s # "error": "not all items are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/item/type", 381s # "error": "got object, not array", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/0/$ref/type" 381s # }, 381s # { 381s # "error": "not all items are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 212 - items.json: "items and subitems" - "wrong sub-item" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 381s # "error": "object is missing property: foo", 381s # "instanceLocation": "/0/0", 381s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "#/definitions/item/items", 381s # "error": "not all items are valid", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/0/$ref/items" 381s # }, 381s # { 381s # "error": "not all items are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 381s # "error": "object is missing property: foo", 381s # "instanceLocation": "/0/0", 381s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "#/definitions/item/items", 381s # "error": "not all items are valid", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/0/$ref/items" 381s # }, 381s # { 381s # "error": "not all items are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 213 - items.json: "items and subitems" - "fewer items is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 214 - items.json: "nested items" - "valid nested array" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 215 - items.json: "nested items" - "nested array with invalid type" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "/0/0/0/0", 381s # "keywordLocation": "/items/items/items/items/type" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0/0/0", 381s # "keywordLocation": "/items/items/items/items" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0/0", 381s # "keywordLocation": "/items/items/items" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/items" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "/0/0/0/0", 381s # "keywordLocation": "/items/items/items/items/type" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0/0/0", 381s # "keywordLocation": "/items/items/items/items" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0/0", 381s # "keywordLocation": "/items/items/items" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/items" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 216 - items.json: "nested items" - "not deep enough" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not array", 381s # "instanceLocation": "/0/0/0", 381s # "keywordLocation": "/items/items/items/type" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0/0", 381s # "keywordLocation": "/items/items/items" 381s # }, 381s # { 381s # "error": "got integer, not array", 381s # "instanceLocation": "/0/1/0", 381s # "keywordLocation": "/items/items/items/type" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0/1", 381s # "keywordLocation": "/items/items/items" 381s # }, 381s # { 381s # "error": "got integer, not array", 381s # "instanceLocation": "/0/2/0", 381s # "keywordLocation": "/items/items/items/type" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0/2", 381s # "keywordLocation": "/items/items/items" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/items" 381s # }, 381s # { 381s # "error": "got integer, not array", 381s # "instanceLocation": "/1/0/0", 381s # "keywordLocation": "/items/items/items/type" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/1/0", 381s # "keywordLocation": "/items/items/items" 381s # }, 381s # { 381s # "error": "got integer, not array", 381s # "instanceLocation": "/1/1/0", 381s # "keywordLocation": "/items/items/items/type" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/1/1", 381s # "keywordLocation": "/items/items/items" 381s # }, 381s # { 381s # "error": "got integer, not array", 381s # "instanceLocation": "/1/2/0", 381s # "keywordLocation": "/items/items/items/type" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/1/2", 381s # "keywordLocation": "/items/items/items" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/1", 381s # "keywordLocation": "/items/items" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not array", 381s # "instanceLocation": "/0/0/0", 381s # "keywordLocation": "/items/items/items/type" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0/0", 381s # "keywordLocation": "/items/items/items" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/items" 381s # }, 381s # { 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 217 - items.json: "items with null instance elements" - "allows null elements" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 218 - items.json: "array-form items with null instance elements" - "allows null elements" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 219 - maxItems.json: "maxItems validation" - "shorter is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 220 - maxItems.json: "maxItems validation" - "exact length is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 221 - maxItems.json: "maxItems validation" - "too long is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "array has more than 2 items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maxItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "array has more than 2 items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maxItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 222 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 223 - maxLength.json: "maxLength validation" - "shorter is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 224 - maxLength.json: "maxLength validation" - "exact length is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 225 - maxLength.json: "maxLength validation" - "too long is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "length is greater than 2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maxLength" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "length is greater than 2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maxLength" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 226 - maxLength.json: "maxLength validation" - "ignores non-strings" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 227 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 228 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 229 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 230 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "object has more than 2 properties", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maxProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "object has more than 2 properties", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maxProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 231 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 232 - maxProperties.json: "maxProperties validation" - "ignores strings" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 233 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 234 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 235 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "object has more than 0 property", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maxProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "object has more than 0 property", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maxProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s ok 236 - maximum.json: "maximum validation" - "below the maximum is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 237 - maximum.json: "maximum validation" - "boundary point is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 238 - maximum.json: "maximum validation" - "above the maximum is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is greater than 3", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maximum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is greater than 3", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maximum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 239 - maximum.json: "maximum validation" - "ignores non-numbers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 240 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 241 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 242 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 243 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is greater than 300", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maximum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is greater than 300", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maximum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 244 - maximum.json: "maximum validation (explicit false exclusivity)" - "below the maximum is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 245 - maximum.json: "maximum validation (explicit false exclusivity)" - "boundary point is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 246 - maximum.json: "maximum validation (explicit false exclusivity)" - "above the maximum is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is greater than 3", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maximum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is greater than 3", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maximum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 247 - maximum.json: "maximum validation (explicit false exclusivity)" - "ignores non-numbers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 248 - maximum.json: "exclusiveMaximum validation" - "below the maximum is still valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 249 - maximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is greater than or equal to 3", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maximum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is greater than or equal to 3", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maximum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s ok 250 - minItems.json: "minItems validation" - "longer is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 251 - minItems.json: "minItems validation" - "exact length is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 252 - minItems.json: "minItems validation" - "too short is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "array has fewer than 1 item", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "array has fewer than 1 item", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 253 - minItems.json: "minItems validation" - "ignores non-arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 254 - minLength.json: "minLength validation" - "longer is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 255 - minLength.json: "minLength validation" - "exact length is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 256 - minLength.json: "minLength validation" - "too short is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "length is less than 2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minLength" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "length is less than 2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minLength" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 257 - minLength.json: "minLength validation" - "ignores non-strings" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 258 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "length is less than 2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minLength" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "length is less than 2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minLength" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s ok 259 - minProperties.json: "minProperties validation" - "longer is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 260 - minProperties.json: "minProperties validation" - "exact length is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 261 - minProperties.json: "minProperties validation" - "too short is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "object has fewer than 1 property", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "object has fewer than 1 property", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 262 - minProperties.json: "minProperties validation" - "ignores arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 263 - minProperties.json: "minProperties validation" - "ignores strings" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 264 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 265 - minimum.json: "minimum validation" - "above the minimum is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 266 - minimum.json: "minimum validation" - "boundary point is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 267 - minimum.json: "minimum validation" - "below the minimum is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is less than 1.1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minimum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is less than 1.1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minimum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 268 - minimum.json: "minimum validation" - "ignores non-numbers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 269 - minimum.json: "minimum validation (explicit false exclusivity)" - "above the minimum is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 270 - minimum.json: "minimum validation (explicit false exclusivity)" - "boundary point is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 271 - minimum.json: "minimum validation (explicit false exclusivity)" - "below the minimum is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is less than 1.1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minimum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is less than 1.1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minimum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 272 - minimum.json: "minimum validation (explicit false exclusivity)" - "ignores non-numbers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 273 - minimum.json: "exclusiveMinimum validation" - "above the minimum is still valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 274 - minimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is less than or equal to 1.1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minimum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is less than or equal to 1.1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minimum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 275 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 276 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 277 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 278 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 279 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is less than -2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minimum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is less than -2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minimum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 280 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is less than -2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minimum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is less than -2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minimum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 281 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 282 - multipleOf.json: "by int" - "int by int" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 283 - multipleOf.json: "by int" - "int by int fail" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is not a multiple of 2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/multipleOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is not a multiple of 2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/multipleOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 284 - multipleOf.json: "by int" - "ignores non-numbers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 285 - multipleOf.json: "by number" - "zero is multiple of anything" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 286 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 287 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is not a multiple of 1.5", 381s # "instanceLocation": "", 381s # "keywordLocation": "/multipleOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is not a multiple of 1.5", 381s # "instanceLocation": "", 381s # "keywordLocation": "/multipleOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 288 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 289 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is not a multiple of 0.0001", 381s # "instanceLocation": "", 381s # "keywordLocation": "/multipleOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is not a multiple of 0.0001", 381s # "instanceLocation": "", 381s # "keywordLocation": "/multipleOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 290 - multipleOf.json: "float division = inf" - "invalid, but naive implementations may raise an overflow error" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # }, 381s # { 381s # "error": "value is not a multiple of 0.123456789", 381s # "instanceLocation": "", 381s # "keywordLocation": "/multipleOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 291 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 292 - not.json: "not" - "allowed" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 293 - not.json: "not" - "disallowed" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 294 - not.json: "not multiple types" - "valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 295 - not.json: "not multiple types" - "mismatch" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 296 - not.json: "not multiple types" - "other mismatch" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 297 - not.json: "not more complex schema" - "match" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 298 - not.json: "not more complex schema" - "other match" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 299 - not.json: "not more complex schema" - "mismatch" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 300 - not.json: "forbidden property" - "property present" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/properties/foo/not" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/properties/foo/not" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 301 - not.json: "forbidden property" - "property absent" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 302 - not.json: "forbid everything with empty schema" - "number is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 303 - not.json: "forbid everything with empty schema" - "string is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 304 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 305 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 306 - not.json: "forbid everything with empty schema" - "null is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 307 - not.json: "forbid everything with empty schema" - "object is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 308 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 309 - not.json: "forbid everything with empty schema" - "array is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 310 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "subschema is valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/not" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 311 - not.json: "double negation" - "any value is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 312 - oneOf.json: "oneOf" - "first oneOf valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 313 - oneOf.json: "oneOf" - "second oneOf valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 314 - oneOf.json: "oneOf" - "both oneOf valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "multiple subschemas are valid: 0, 1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "multiple subschemas are valid: 0, 1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 315 - oneOf.json: "oneOf" - "neither oneOf valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/0/type" 381s # }, 381s # { 381s # "error": "value is less than 2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/1/minimum" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/0/type" 381s # }, 381s # { 381s # "error": "value is less than 2", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/1/minimum" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 316 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # }, 381s # { 381s # "error": "multiple subschemas are valid: 0, 1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 317 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 318 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "multiple subschemas are valid: 0, 1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "multiple subschemas are valid: 0, 1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 319 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 320 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 321 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "multiple subschemas are valid: 0, 1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "multiple subschemas are valid: 0, 1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 322 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/bar", 381s # "keywordLocation": "/oneOf/0/properties/bar/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/0/properties" 381s # }, 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/oneOf/1/properties/foo/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/1/properties" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/bar", 381s # "keywordLocation": "/oneOf/0/properties/bar/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/0/properties" 381s # }, 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/oneOf/1/properties/foo/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/1/properties" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 323 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 324 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "multiple subschemas are valid: 0, 1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "multiple subschemas are valid: 0, 1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 325 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing property: foo", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/0/required" 381s # }, 381s # { 381s # "error": "object is missing properties: foo, baz", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/1/required" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing property: foo", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/0/required" 381s # }, 381s # { 381s # "error": "object is missing properties: foo, baz", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/1/required" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 326 - oneOf.json: "oneOf with required" - "first valid - valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 327 - oneOf.json: "oneOf with required" - "second valid - valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 328 - oneOf.json: "oneOf with required" - "both valid - invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "multiple subschemas are valid: 0, 1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "multiple subschemas are valid: 0, 1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 329 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 330 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 331 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "multiple subschemas are valid: 0, 1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "multiple subschemas are valid: 0, 1", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 332 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing property: bar", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/0/required" 381s # }, 381s # { 381s # "error": "object is missing property: foo", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/1/required" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing property: bar", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/0/required" 381s # }, 381s # { 381s # "error": "object is missing property: foo", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/1/required" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 333 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 334 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/0/oneOf/0/type" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/0/oneOf" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/0/oneOf/0/type" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf/0/oneOf" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/oneOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s ok 335 - pattern.json: "pattern validation" - "a matching pattern is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 336 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 337 - pattern.json: "pattern validation" - "ignores booleans" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 338 - pattern.json: "pattern validation" - "ignores integers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 339 - pattern.json: "pattern validation" - "ignores floats" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 340 - pattern.json: "pattern validation" - "ignores objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 341 - pattern.json: "pattern validation" - "ignores arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 342 - pattern.json: "pattern validation" - "ignores null" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 343 - pattern.json: "pattern is not anchored" - "matches a substring" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 344 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 345 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 346 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/patternProperties/f.*o/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/patternProperties/f.*o/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 347 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/patternProperties/f.*o/type" 381s # }, 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/foooooo", 381s # "keywordLocation": "/patternProperties/f.*o/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/patternProperties/f.*o/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 348 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 349 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 350 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 351 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 352 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 353 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 354 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/a", 381s # "keywordLocation": "/patternProperties/a*/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/a", 381s # "keywordLocation": "/patternProperties/a*/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 355 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is greater than 20", 381s # "instanceLocation": "/aaaa", 381s # "keywordLocation": "/patternProperties/aaa*/maximum" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is greater than 20", 381s # "instanceLocation": "/aaaa", 381s # "keywordLocation": "/patternProperties/aaa*/maximum" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 356 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/aaa", 381s # "keywordLocation": "/patternProperties/a*/type" 381s # }, 381s # { 381s # "error": "value is greater than 20", 381s # "instanceLocation": "/aaaa", 381s # "keywordLocation": "/patternProperties/aaa*/maximum" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/aaa", 381s # "keywordLocation": "/patternProperties/a*/type" 381s # }, 381s # { 381s # "error": "value is greater than 20", 381s # "instanceLocation": "/aaaa", 381s # "keywordLocation": "/patternProperties/aaa*/maximum" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 357 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 358 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not boolean", 381s # "instanceLocation": "/a31b", 381s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not boolean", 381s # "instanceLocation": "/a31b", 381s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 359 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 360 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "/a_X_3", 381s # "keywordLocation": "/patternProperties/X_/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "/a_X_3", 381s # "keywordLocation": "/patternProperties/X_/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 361 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 362 - properties.json: "object properties validation" - "both properties present and valid is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 363 - properties.json: "object properties validation" - "one property invalid is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not string", 381s # "instanceLocation": "/bar", 381s # "keywordLocation": "/properties/bar/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not string", 381s # "instanceLocation": "/bar", 381s # "keywordLocation": "/properties/bar/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 364 - properties.json: "object properties validation" - "both properties invalid is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not string", 381s # "instanceLocation": "/bar", 381s # "keywordLocation": "/properties/bar/type" 381s # }, 381s # { 381s # "error": "got array, not integer", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/properties/foo/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not string", 381s # "instanceLocation": "/bar", 381s # "keywordLocation": "/properties/bar/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 365 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 366 - properties.json: "object properties validation" - "ignores arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 367 - properties.json: "object properties validation" - "ignores other non-objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 368 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 369 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "array has more than 3 items", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/properties/foo/maxItems" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "array has more than 3 items", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/properties/foo/maxItems" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 370 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "array has fewer than 2 items", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/patternProperties/f.o/minItems" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "array has fewer than 2 items", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/patternProperties/f.o/minItems" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 371 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 372 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "array has fewer than 2 items", 381s # "instanceLocation": "/fxo", 381s # "keywordLocation": "/patternProperties/f.o/minItems" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "array has fewer than 2 items", 381s # "instanceLocation": "/fxo", 381s # "keywordLocation": "/patternProperties/f.o/minItems" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 373 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 374 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 375 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/quux", 381s # "keywordLocation": "/additionalProperties/type" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/quux", 381s # "keywordLocation": "/additionalProperties/type" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 376 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 377 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "/foo\tbar", 381s # "keywordLocation": "/properties/foo\tbar/type" 381s # }, 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "/foo\nbar", 381s # "keywordLocation": "/properties/foo\nbar/type" 381s # }, 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "/foo\fbar", 381s # "keywordLocation": "/properties/foo\fbar/type" 381s # }, 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "/foo\rbar", 381s # "keywordLocation": "/properties/foo\rbar/type" 381s # }, 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "/foo\"bar", 381s # "keywordLocation": "/properties/foo\"bar/type" 381s # }, 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "/foo\\bar", 381s # "keywordLocation": "/properties/foo\\bar/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "/foo\tbar", 381s # "keywordLocation": "/properties/foo\tbar/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 378 - properties.json: "properties with null valued instance properties" - "allows null values" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 379 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 380 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 381 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 382 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "/__proto__", 381s # "keywordLocation": "/properties/__proto__/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "/__proto__", 381s # "keywordLocation": "/properties/__proto__/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 383 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "/toString/length", 381s # "keywordLocation": "/properties/toString/properties/length/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "/toString", 381s # "keywordLocation": "/properties/toString/properties" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "/toString/length", 381s # "keywordLocation": "/properties/toString/properties/length/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "/toString", 381s # "keywordLocation": "/properties/toString/properties" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 384 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not number", 381s # "instanceLocation": "/constructor", 381s # "keywordLocation": "/properties/constructor/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not number", 381s # "instanceLocation": "/constructor", 381s # "keywordLocation": "/properties/constructor/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 385 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 386 - ref.json: "root pointer ref" - "match" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 387 - ref.json: "root pointer ref" - "recursive match" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 388 - ref.json: "root pointer ref" - "mismatch" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/bar", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/bar", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 389 - ref.json: "root pointer ref" - "recursive mismatch" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/additionalProperties", 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/foo/bar", 381s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "#/additionalProperties", 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/additionalProperties", 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/foo/bar", 381s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "#/additionalProperties", 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 390 - ref.json: "relative pointer ref to object" - "match" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 391 - ref.json: "relative pointer ref to object" - "mismatch" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/properties/foo/type", 381s # "error": "got boolean, not integer", 381s # "instanceLocation": "/bar", 381s # "keywordLocation": "/properties/bar/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/properties/foo/type", 381s # "error": "got boolean, not integer", 381s # "instanceLocation": "/bar", 381s # "keywordLocation": "/properties/bar/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 392 - ref.json: "relative pointer ref to array" - "match array" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 393 - ref.json: "relative pointer ref to array" - "mismatch array" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/items/0/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/1", 381s # "keywordLocation": "/items/1/$ref/type" 381s # }, 381s # { 381s # "error": "not all items are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/items/0/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/1", 381s # "keywordLocation": "/items/1/$ref/type" 381s # }, 381s # { 381s # "error": "not all items are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 394 - ref.json: "escaped pointer ref" - "slash invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/slash", 381s # "keywordLocation": "/properties/slash/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/slash", 381s # "keywordLocation": "/properties/slash/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 395 - ref.json: "escaped pointer ref" - "tilde invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/tilde", 381s # "keywordLocation": "/properties/tilde/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/tilde", 381s # "keywordLocation": "/properties/tilde/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 396 - ref.json: "escaped pointer ref" - "percent invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/percent", 381s # "keywordLocation": "/properties/percent/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/percent", 381s # "keywordLocation": "/properties/percent/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 397 - ref.json: "escaped pointer ref" - "slash valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 398 - ref.json: "escaped pointer ref" - "tilde valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 399 - ref.json: "escaped pointer ref" - "percent valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 400 - ref.json: "nested refs" - "nested ref valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 401 - ref.json: "nested refs" - "nested ref invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/a/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 381s # }, 381s # { 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/a/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 381s # }, 381s # { 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 402 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 403 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 404 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/reffed/type", 381s # "error": "got string, not array", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/properties/foo/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/reffed/type", 381s # "error": "got string, not array", 381s # "instanceLocation": "/foo", 381s # "keywordLocation": "/properties/foo/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 405 - ref.json: "$ref prevents a sibling id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 406 - ref.json: "$ref prevents a sibling id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 407 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 408 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger/minimum", 381s # "error": "value is less than 0", 381s # "instanceLocation": "/minLength", 381s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0/allOf", 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "/minLength", 381s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/$ref/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger/minimum", 381s # "error": "value is less than 0", 381s # "instanceLocation": "/minLength", 381s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0/allOf", 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "/minLength", 381s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/$ref/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 409 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 410 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "/$ref", 381s # "keywordLocation": "/properties/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "/$ref", 381s # "keywordLocation": "/properties/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 411 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 412 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/is-string/type", 381s # "error": "got integer, not string", 381s # "instanceLocation": "/$ref", 381s # "keywordLocation": "/properties/$ref/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/is-string/type", 381s # "error": "got integer, not string", 381s # "instanceLocation": "/$ref", 381s # "keywordLocation": "/properties/$ref/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 413 - ref.json: "Recursive references between schemas" - "valid tree" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 414 - ref.json: "Recursive references between schemas" - "invalid tree" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 381s # "error": "got string, not number", 381s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 381s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "/nodes/0/subtree/nodes/0", 381s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/nodes/0/subtree/nodes", 381s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "/nodes/0/subtree", 381s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "/nodes/0", 381s # "keywordLocation": "/properties/nodes/items/$ref/properties" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/nodes", 381s # "keywordLocation": "/properties/nodes/items" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 381s # "error": "got string, not number", 381s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 381s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "/nodes/0/subtree/nodes/0", 381s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/nodes/0/subtree/nodes", 381s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "/nodes/0/subtree", 381s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "/nodes/0", 381s # "keywordLocation": "/properties/nodes/items/$ref/properties" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/nodes", 381s # "keywordLocation": "/properties/nodes/items" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 415 - ref.json: "refs with quote" - "object with numbers is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 416 - ref.json: "refs with quote" - "object with strings is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 381s # "error": "got string, not number", 381s # "instanceLocation": "/foo\"bar", 381s # "keywordLocation": "/properties/foo\"bar/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 381s # "error": "got string, not number", 381s # "instanceLocation": "/foo\"bar", 381s # "keywordLocation": "/properties/foo\"bar/$ref/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 417 - ref.json: "Location-independent identifier" - "match" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 418 - ref.json: "Location-independent identifier" - "mismatch" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/A/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/A/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 419 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 420 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s 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" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/enum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/enum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 422 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 423 - ref.json: "id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 424 - ref.json: "id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 425 - ref.json: "id with file URI still resolves pointers - *nix" - "number is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 426 - ref.json: "id with file URI still resolves pointers - *nix" - "non-number is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 427 - ref.json: "id with file URI still resolves pointers - windows" - "number is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 428 - ref.json: "id with file URI still resolves pointers - windows" - "non-number is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 429 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 430 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions//definitions//type", 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions//definitions//type", 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf/0/$ref/type" 381s # }, 381s # { 381s # "error": "subschema 0 is not valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/allOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s ok 431 - refRemote.json: "remote ref" - "remote ref valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 432 - refRemote.json: "remote ref" - "remote ref invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/$ref/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/$ref/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 433 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 434 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/$ref/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/$ref/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 435 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 436 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/$ref/$ref/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/draft4/subSchemas.json#/definitions/integer/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/$ref/$ref/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 437 - refRemote.json: "base URI change" - "base URI change ref valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 438 - refRemote.json: "base URI change" - "base URI change ref invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/0/0", 381s # "keywordLocation": "/items/items/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/items" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/0/0", 381s # "keywordLocation": "/items/items/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/0", 381s # "keywordLocation": "/items/items" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/items" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 439 - refRemote.json: "base URI change - change folder" - "number is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 440 - refRemote.json: "base URI change - change folder" - "string is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/list/0", 381s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/list", 381s # "keywordLocation": "/properties/list/$ref/items" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/list/0", 381s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/list", 381s # "keywordLocation": "/properties/list/$ref/items" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 441 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 442 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/list/0", 381s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/list", 381s # "keywordLocation": "/properties/list/$ref/items" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "/list/0", 381s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 381s # "error": "subschema is not valid against all items", 381s # "instanceLocation": "/list", 381s # "keywordLocation": "/properties/list/$ref/items" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 443 - refRemote.json: "root ref in remote ref" - "string is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 444 - refRemote.json: "root ref in remote ref" - "null is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 445 - refRemote.json: "root ref in remote ref" - "object is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf/0/type", 381s # "error": "got object, not null", 381s # "instanceLocation": "/name", 381s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/type", 381s # "error": "got object, not string", 381s # "instanceLocation": "/name", 381s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf", 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "/name", 381s # "keywordLocation": "/properties/name/$ref/anyOf" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf/0/type", 381s # "error": "got object, not null", 381s # "instanceLocation": "/name", 381s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/type", 381s # "error": "got object, not string", 381s # "instanceLocation": "/name", 381s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/draft4/name.json#/definitions/orNull/anyOf", 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "/name", 381s # "keywordLocation": "/properties/name/$ref/anyOf" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/properties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 446 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 447 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/draft4/locationIndependentIdentifier.json#/definitions/A/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/$ref/$ref/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "http://localhost:1234/draft4/locationIndependentIdentifier.json#/definitions/A/type", 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/$ref/$ref/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s ok 448 - required.json: "required validation" - "present required property is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 449 - required.json: "required validation" - "non-present required property is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing property: foo", 381s # "instanceLocation": "", 381s # "keywordLocation": "/required" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing property: foo", 381s # "instanceLocation": "", 381s # "keywordLocation": "/required" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 450 - required.json: "required validation" - "ignores arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 451 - required.json: "required validation" - "ignores strings" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 452 - required.json: "required validation" - "ignores other non-objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 453 - required.json: "required default validation" - "not required by default" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 454 - required.json: "required with escaped characters" - "object with all properties present is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 455 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 381s # "instanceLocation": "", 381s # "keywordLocation": "/required" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 381s # "instanceLocation": "", 381s # "keywordLocation": "/required" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 456 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 457 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 458 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing properties: __proto__, toString, constructor", 381s # "instanceLocation": "", 381s # "keywordLocation": "/required" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing properties: __proto__, toString, constructor", 381s # "instanceLocation": "", 381s # "keywordLocation": "/required" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 459 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing properties: toString, constructor", 381s # "instanceLocation": "", 381s # "keywordLocation": "/required" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing properties: toString, constructor", 381s # "instanceLocation": "", 381s # "keywordLocation": "/required" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 460 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing properties: __proto__, constructor", 381s # "instanceLocation": "", 381s # "keywordLocation": "/required" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing properties: __proto__, constructor", 381s # "instanceLocation": "", 381s # "keywordLocation": "/required" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 461 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing properties: __proto__, toString", 381s # "instanceLocation": "", 381s # "keywordLocation": "/required" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "object is missing properties: __proto__, toString", 381s # "instanceLocation": "", 381s # "keywordLocation": "/required" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 462 - required.json: "required properties whose names are Javascript object property names" - "all present" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 463 - type.json: "integer type matches integers" - "an integer is an integer" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 464 - type.json: "integer type matches integers" - "a float is not an integer" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 465 - type.json: "integer type matches integers" - "a string is not an integer" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 466 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 467 - type.json: "integer type matches integers" - "an object is not an integer" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 468 - type.json: "integer type matches integers" - "an array is not an integer" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 469 - type.json: "integer type matches integers" - "a boolean is not an integer" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 470 - type.json: "integer type matches integers" - "null is not an integer" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 471 - type.json: "number type matches numbers" - "an integer is a number" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 472 - type.json: "number type matches numbers" - "a float with zero fractional part is a number" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 473 - type.json: "number type matches numbers" - "a float is a number" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 474 - type.json: "number type matches numbers" - "a string is not a number" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 475 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 476 - type.json: "number type matches numbers" - "an object is not a number" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 477 - type.json: "number type matches numbers" - "an array is not a number" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 478 - type.json: "number type matches numbers" - "a boolean is not a number" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 479 - type.json: "number type matches numbers" - "null is not a number" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not number", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 480 - type.json: "string type matches strings" - "1 is not a string" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 481 - type.json: "string type matches strings" - "a float is not a string" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 482 - type.json: "string type matches strings" - "a string is a string" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 483 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 484 - type.json: "string type matches strings" - "an empty string is still a string" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 485 - type.json: "string type matches strings" - "an object is not a string" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 486 - type.json: "string type matches strings" - "an array is not a string" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 487 - type.json: "string type matches strings" - "a boolean is not a string" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 488 - type.json: "string type matches strings" - "null is not a string" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 489 - type.json: "object type matches objects" - "an integer is not an object" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 490 - type.json: "object type matches objects" - "a float is not an object" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 491 - type.json: "object type matches objects" - "a string is not an object" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 492 - type.json: "object type matches objects" - "an object is an object" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 493 - type.json: "object type matches objects" - "an array is not an object" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 494 - type.json: "object type matches objects" - "a boolean is not an object" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 495 - type.json: "object type matches objects" - "null is not an object" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 496 - type.json: "array type matches arrays" - "an integer is not an array" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not array", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not array", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 497 - type.json: "array type matches arrays" - "a float is not an array" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not array", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not array", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 498 - type.json: "array type matches arrays" - "a string is not an array" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not array", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not array", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 499 - type.json: "array type matches arrays" - "an object is not an array" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not array", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not array", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 500 - type.json: "array type matches arrays" - "an array is an array" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 501 - type.json: "array type matches arrays" - "a boolean is not an array" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not array", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not array", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 502 - type.json: "array type matches arrays" - "null is not an array" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not array", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not array", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 503 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 504 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 505 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 506 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 507 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 508 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 509 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 510 - type.json: "boolean type matches booleans" - "true is a boolean" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 511 - type.json: "boolean type matches booleans" - "false is a boolean" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 512 - type.json: "boolean type matches booleans" - "null is not a boolean" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not boolean", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 513 - type.json: "null type matches only the null object" - "an integer is not null" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 514 - type.json: "null type matches only the null object" - "a float is not null" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 515 - type.json: "null type matches only the null object" - "zero is not null" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 516 - type.json: "null type matches only the null object" - "a string is not null" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 517 - type.json: "null type matches only the null object" - "an empty string is not null" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 518 - type.json: "null type matches only the null object" - "an object is not null" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 519 - type.json: "null type matches only the null object" - "an array is not null" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 520 - type.json: "null type matches only the null object" - "true is not null" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 521 - type.json: "null type matches only the null object" - "false is not null" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 522 - type.json: "null type matches only the null object" - "null is null" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 523 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 524 - type.json: "multiple types can be specified in an array" - "a string is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 525 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not one of integer, string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not one of integer, string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 526 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not one of integer, string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got object, not one of integer, string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 527 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not one of integer, string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got array, not one of integer, string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 528 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not one of integer, string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got boolean, not one of integer, string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 529 - type.json: "multiple types can be specified in an array" - "null is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not one of integer, string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not one of integer, string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 530 - type.json: "type as array with one item" - "string is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 531 - type.json: "type as array with one item" - "number is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not one of string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not one of string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 532 - type.json: "type: array or object" - "array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 533 - type.json: "type: array or object" - "object is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 534 - type.json: "type: array or object" - "number is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not one of array, object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not one of array, object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 535 - type.json: "type: array or object" - "string is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not one of array, object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not one of array, object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 536 - type.json: "type: array or object" - "null is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not one of array, object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got null, not one of array, object", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 537 - type.json: "type: array, object or null" - "array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 538 - type.json: "type: array, object or null" - "object is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 539 - type.json: "type: array, object or null" - "null is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 540 - type.json: "type: array, object or null" - "number is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not one of array, object, null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not one of array, object, null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 541 - type.json: "type: array, object or null" - "string is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not one of array, object, null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not one of array, object, null", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s ok 542 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 543 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 544 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 2 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 2 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 545 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 546 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 547 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 548 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 549 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 2 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 2 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 550 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 551 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 552 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 553 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 554 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 555 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 556 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 557 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 2 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 2 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 558 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 559 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 560 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 561 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 562 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 563 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 564 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 565 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 4 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 4 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 566 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 567 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 568 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 569 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 570 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 571 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 572 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 573 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 574 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 575 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 576 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 2 and 3 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 2 and 3 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 577 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 2 and 3 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 2 and 3 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 578 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 579 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 580 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 581 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "items at indices 0 and 1 are not unique", 381s # "instanceLocation": "", 381s # "keywordLocation": "/uniqueItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 582 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "additional item not permitted", 381s # "instanceLocation": "/2", 381s # "keywordLocation": "/additionalItems" 381s # }, 381s # { 381s # "error": "subschema is not valid against all additional items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "additional item not permitted", 381s # "instanceLocation": "/2", 381s # "keywordLocation": "/additionalItems" 381s # }, 381s # { 381s # "error": "subschema is not valid against all additional items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 583 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 584 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 585 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 586 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 587 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 588 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 589 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 590 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 591 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 592 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 593 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 594 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 595 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 596 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 597 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 598 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 599 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 600 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 601 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 602 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 603 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 604 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 605 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 606 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 607 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 608 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 609 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 610 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "additional item not permitted", 381s # "instanceLocation": "/2", 381s # "keywordLocation": "/additionalItems" 381s # }, 381s # { 381s # "error": "subschema is not valid against all additional items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "additional item not permitted", 381s # "instanceLocation": "/2", 381s # "keywordLocation": "/additionalItems" 381s # }, 381s # { 381s # "error": "subschema is not valid against all additional items", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalItems" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s ok 611 - optional/bignum.json: "integer" - "a bignum is an integer" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 612 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 613 - optional/bignum.json: "number" - "a bignum is a number" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 614 - optional/bignum.json: "number" - "a negative bignum is a number" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 615 - optional/bignum.json: "string" - "a bignum is not a string" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got integer, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 616 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 617 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maximum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 381s # "instanceLocation": "", 381s # "keywordLocation": "/maximum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 618 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 619 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minimum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 381s # "instanceLocation": "", 381s # "keywordLocation": "/minimum" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s ok 620 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 621 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 622 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 623 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 624 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 625 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 626 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 627 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 628 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true # 381s 1..1 381s } 381s 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" 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected false; got true 381s # schema: { 381s # "pattern": "^\\d$", 381s # "type": "string" 381s # } 381s # data: "߀" 381s # result: 1 381s 1..1 381s } 381s 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" 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected false; got true 381s # schema: { 381s # "pattern": "^\\d$", 381s # "type": "string" 381s # } 381s # data: "߀" 381s # result: 1 381s 1..1 381s } 381s 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" 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false # 381s 1..1 381s } 381s 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" 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected true; got false 381s # schema: { 381s # "pattern": "^\\D$", 381s # "type": "string" 381s # } 381s # data: "߀" 381s # result: 0 381s 1..1 381s } 381s 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" 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected true; got false 381s # schema: { 381s # "pattern": "^\\D$", 381s # "type": "string" 381s # } 381s # data: "߀" 381s # result: 0 381s 1..1 381s } 381s ok 634 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true # 381s 1..1 381s } 381s 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" 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected false; got true 381s # schema: { 381s # "pattern": "^\\w$", 381s # "type": "string" 381s # } 381s # data: "é" 381s # result: 1 381s 1..1 381s } 381s 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" 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false # 381s 1..1 381s } 381s 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" 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected true; got false 381s # schema: { 381s # "pattern": "^\\W$", 381s # "type": "string" 381s # } 381s # data: "é" 381s # result: 0 381s 1..1 381s } 381s ok 638 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 639 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 640 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 641 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 642 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 643 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected true; got false 381s # schema: { 381s # "pattern": "^\\s$", 381s # "type": "string" 381s # } 381s # data: "" 381s # result: 0 381s 1..1 381s } 381s ok 644 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 645 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 646 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 647 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 648 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 649 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 650 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 651 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 652 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 653 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s 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" 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected false; got true 381s # schema: { 381s # "pattern": "^\\S$", 381s # "type": "string" 381s # } 381s # data: "" 381s # result: 1 381s 1..1 381s } 381s ok 655 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 656 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 657 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 658 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 659 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 660 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 661 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 662 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 663 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 664 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s 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" 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected false; got true 381s # schema: { 381s # "pattern": "\\wcole" 381s # } 381s # 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." 381s # result: 1 381s 1..1 381s } 381s 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" 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected false; got true 381s # schema: { 381s # "pattern": "\\wcole" 381s # } 381s # 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." 381s # result: 1 381s 1..1 381s } 381s ok 667 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 668 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 669 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 670 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 671 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 672 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s 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" 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected false; got true 381s # schema: { 381s # "pattern": "^\\d+$" 381s # } 381s # data: "৪২" 381s # result: 1 381s 1..1 381s } 381s ok 674 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 675 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 676 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 677 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 678 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 679 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 680 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/L'ÉCOLE", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/L'ÉCOLE", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 681 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s 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" 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected false; got true 381s # schema: { 381s # "additionalProperties": false, 381s # "patternProperties": { 381s # "\\wcole": {} 381s # }, 381s # "type": "object" 381s # } 381s # data: { 381s # "l'école": "pas de vraie vie" 381s # } 381s # result: 1 381s 1..1 381s } 381s 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" 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected false; got true 381s # schema: { 381s # "additionalProperties": false, 381s # "patternProperties": { 381s # "\\wcole": {} 381s # }, 381s # "type": "object" 381s # } 381s # data: { 381s # "l'école": "pas de vraie vie" 381s # } 381s # result: 1 381s 1..1 381s } 381s ok 684 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/L'ÉCOLE", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/L'ÉCOLE", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 685 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/l'école", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/l'école", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 686 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/l'école", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/l'école", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 687 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 688 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 689 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/-%#", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/-%#", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s 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" 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s not ok 1 - evaluation result is incorrect # 381s # Failed test (with amnesty) 'evaluation result is incorrect' 381s # at t/zzz-acceptance-draft4.t line 51. 381s # expected false; got true 381s # schema: { 381s # "additionalProperties": false, 381s # "patternProperties": { 381s # "^\\d+$": {} 381s # }, 381s # "type": "object" 381s # } 381s # data: { 381s # "৪২": "khajit has wares if you have coin" 381s # } 381s # result: 1 381s 1..1 381s } 381s ok 691 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 692 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/-%#", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "additional property not permitted", 381s # "instanceLocation": "/-%#", 381s # "keywordLocation": "/additionalProperties" 381s # }, 381s # { 381s # "error": "not all additional properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/additionalProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 693 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 694 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s # 381s ok 695 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 696 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 697 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 381s # result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 381s # "error": "value does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/anyOf/0/$ref/enum" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "https://localhost:1234/my_identifier.json#/type", 381s # "error": "got integer, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/anyOf/1/$ref/type" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/anyOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 381s # "error": "value does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/anyOf/0/$ref/enum" 381s # }, 381s # { 381s # "absoluteKeywordLocation": "https://localhost:1234/my_identifier.json#/type", 381s # "error": "got integer, not string", 381s # "instanceLocation": "", 381s # "keywordLocation": "/anyOf/1/$ref/type" 381s # }, 381s # { 381s # "error": "no subschemas are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/anyOf" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s ok 698 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 699 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 700 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 701 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 702 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 703 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 704 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "pattern does not match", 381s # "instanceLocation": "", 381s # "keywordLocation": "/pattern" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 705 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 706 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 707 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 381s # result: { 381s # "valid": true 381s # } 381s # short-circuited result: { 381s # "valid": true 381s # } 381s ok 1 - test passes: data is valid: true 381s 1..1 381s } 381s ok 708 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/🐲", 381s # "keywordLocation": "/patternProperties/^🐲*$/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/🐲", 381s # "keywordLocation": "/patternProperties/^🐲*$/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s ok 709 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/🐲🐲", 381s # "keywordLocation": "/patternProperties/^🐲*$/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got string, not integer", 381s # "instanceLocation": "/🐲🐲", 381s # "keywordLocation": "/patternProperties/^🐲*$/type" 381s # }, 381s # { 381s # "error": "not all properties are valid", 381s # "instanceLocation": "", 381s # "keywordLocation": "/patternProperties" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s 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" { 381s # result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s # short-circuited result: { 381s # "errors": [ 381s # { 381s # "error": "got number, not integer", 381s # "instanceLocation": "", 381s # "keywordLocation": "/type" 381s # } 381s # ], 381s # "valid": false 381s # } 381s ok 1 - test passes: data is valid: false 381s 1..1 381s } 381s # 381s # generated with: Test::JSON::Schema::Acceptance 1.029 381s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 381s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 381s # specification version: draft4 381s # optional tests included: yes 381s # skipping directory: optional/format 381s # 381s # filename pass todo-fail fail 381s # --------------------------------------------------------------- 381s # additionalItems.json 18 0 0 381s # additionalProperties.json 16 0 0 381s # allOf.json 27 0 0 381s # anyOf.json 15 0 0 381s # default.json 7 0 0 381s # definitions.json 2 0 0 381s # dependencies.json 29 0 0 381s # enum.json 45 0 0 381s # format.json 36 0 0 381s # infinite-loop-detection.json 2 0 0 381s # items.json 21 0 0 381s # maxItems.json 4 0 0 381s # maxLength.json 5 0 0 381s # maxProperties.json 8 0 0 381s # maximum.json 14 0 0 381s # minItems.json 4 0 0 381s # minLength.json 5 0 0 381s # minProperties.json 6 0 0 381s # minimum.json 17 0 0 381s # multipleOf.json 10 0 0 381s # not.json 20 0 0 381s # oneOf.json 23 0 0 381s # pattern.json 9 0 0 381s # patternProperties.json 18 0 0 381s # properties.json 24 0 0 381s # ref.json 45 0 0 381s # refRemote.json 17 0 0 381s # required.json 15 0 0 381s # type.json 79 0 0 381s # uniqueItems.json 69 0 0 381s # optional/bignum.json 9 0 0 381s # optional/ecmascript-regex.json 60 14 0 381s # optional/float-overflow.json 1 0 0 381s # optional/id.json 3 0 0 381s # optional/non-bmp-regex.json 12 0 0 381s # optional/zeroTerminatedFloats.json 1 0 0 381s # --------------------------------------------------------------- 381s # TOTAL 696 14 0 381s # 381s # Congratulations, all non-optional tests are passing! 381s # 381s ok 711 - no leaks in the main evaluator object 381s ok 712 - no leaks in the short-circuiting evaluator object 381s 1..712 381s ok 383s t/zzz-acceptance-draft6-format.t ........ 383s # 383s # AUTHOR_TESTING: 383s # AUTOMATED_TESTING: 1 383s # EXTENDED_TESTING: 383s # NO_TODO: 383s # TEST_DIR: 383s # NO_SHORT_CIRCUIT: 383s # 383s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft6/optional/format against draft6... 383s # 383s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid date-time string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s # 383s ok 26 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 27 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 28 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 29 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 30 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 31 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 32 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 33 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid email string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid email string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 34 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 35 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 36 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 37 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid email string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid email string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 38 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid email string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid email string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 39 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 40 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid email string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid email string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s # 383s ok 41 - hostname.json: "validation of host names" - "all string formats ignore integers" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 42 - hostname.json: "validation of host names" - "all string formats ignore floats" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 43 - hostname.json: "validation of host names" - "all string formats ignore objects" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 44 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 45 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 46 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 47 - hostname.json: "validation of host names" - "a valid host name" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 48 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 49 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 50 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 51 - hostname.json: "validation of host names" - "a host name with a component too long" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 52 - hostname.json: "validation of host names" - "starts with hyphen" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 53 - hostname.json: "validation of host names" - "ends with hyphen" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 54 - hostname.json: "validation of host names" - "starts with underscore" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 55 - hostname.json: "validation of host names" - "ends with underscore" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 56 - hostname.json: "validation of host names" - "contains underscore" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 57 - hostname.json: "validation of host names" - "maximum label length" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 58 - hostname.json: "validation of host names" - "exceeds maximum label length" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 59 - hostname.json: "validation of host names" - "single label" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 60 - hostname.json: "validation of host names" - "single label with hyphen" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 61 - hostname.json: "validation of host names" - "single label with digits" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 62 - hostname.json: "validation of host names" - "single label ending with digit" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 63 - hostname.json: "validation of host names" - "empty string" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 64 - hostname.json: "validation of host names" - "single dot" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid hostname string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s # 383s ok 65 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 66 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 67 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 68 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 69 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 70 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 71 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 72 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 73 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 74 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 75 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 76 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 77 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 78 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 79 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 80 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv4 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s # 383s ok 81 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 82 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 83 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 84 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 85 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 86 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 87 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 88 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 89 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 90 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 91 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 92 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 93 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 94 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 95 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 96 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 97 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 98 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 99 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 100 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 101 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 102 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 103 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 104 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 105 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 106 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 107 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 108 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 109 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 110 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 111 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 112 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 113 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 114 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 115 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 116 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 117 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 118 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 119 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 120 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid ipv6 string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s # 383s ok 121 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 122 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 123 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 124 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 125 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 126 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 127 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 128 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 129 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 130 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 131 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 132 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 133 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 134 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 135 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 136 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 137 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 138 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 139 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 140 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 141 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 142 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 143 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 144 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 145 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 146 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 147 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 148 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 149 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 150 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 151 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 152 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 153 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 154 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 155 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 156 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 157 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 158 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid json-pointer string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s # 383s ok 159 - unknown.json: "unknown format" - "unknown formats ignore integers" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 160 - unknown.json: "unknown format" - "unknown formats ignore floats" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 161 - unknown.json: "unknown format" - "unknown formats ignore objects" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 162 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 163 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 164 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 165 - unknown.json: "unknown format" - "unknown formats ignore strings" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s # 383s ok 166 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 167 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 168 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 169 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 170 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 171 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 172 - uri-reference.json: "validation of URI References" - "a valid URI" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 173 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 174 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 175 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri-reference string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri-reference string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 176 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 177 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 178 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri-reference string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri-reference string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s # 383s ok 179 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true # 383s 1..1 383s } 383s ok 180 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true # 383s 1..1 383s } 383s ok 181 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true # 383s 1..1 383s } 383s ok 182 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true # 383s 1..1 383s } 383s ok 183 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true # 383s 1..1 383s } 383s ok 184 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true # 383s 1..1 383s } 383s ok 185 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true # 383s 1..1 383s } 383s ok 186 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s not ok 1 - evaluation result is incorrect # 383s # Failed test (with amnesty) 'evaluation result is incorrect' 383s # at t/zzz-acceptance-draft6-format.t line 66. 383s # expected false; got true 383s # schema: { 383s # "format": "uri-template" 383s # } 383s # data: "http://example.com/dictionary/{term:1}/{term" 383s # result: 1 383s 1..1 383s } 383s ok 187 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true # 383s 1..1 383s } 383s ok 188 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true # 383s 1..1 383s } 383s # 383s ok 189 - uri.json: "validation of URIs" - "all string formats ignore integers" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 190 - uri.json: "validation of URIs" - "all string formats ignore floats" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 191 - uri.json: "validation of URIs" - "all string formats ignore objects" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 192 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 193 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 194 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 195 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 196 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 197 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 198 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 199 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 200 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 201 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 202 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 203 - uri.json: "validation of URIs" - "a valid URL " { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 204 - uri.json: "validation of URIs" - "a valid mailto URI" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 205 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 206 - uri.json: "validation of URIs" - "a valid tel URI" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 207 - uri.json: "validation of URIs" - "a valid URN" { 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s ok 1 - test passes: data is valid: true 383s 1..1 383s } 383s ok 208 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 209 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 210 - uri.json: "validation of URIs" - "an invalid URI" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 211 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 212 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 213 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 383s # result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s # short-circuited result: { 383s # "errors": [ 383s # { 383s # "error": "not a valid uri string", 383s # "instanceLocation": "", 383s # "keywordLocation": "/format" 383s # } 383s # ], 383s # "valid": false 383s # } 383s ok 1 - test passes: data is valid: false 383s 1..1 383s } 383s ok 214 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 383s # result: { 383s # "valid": true 383s # } 383s # short-circuited result: { 383s # "valid": true 383s # } 383s not ok 1 - evaluation result is incorrect # 383s # Failed test (with amnesty) 'evaluation result is incorrect' 383s # at t/zzz-acceptance-draft6-format.t line 66. 383s # expected false; got true 383s # schema: { 383s # "format": "uri" 383s # } 383s # data: "bar,baz:foo" 383s # result: 1 383s 1..1 383s } 383s # 383s # generated with: Test::JSON::Schema::Acceptance 1.029 383s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 383s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 383s # specification version: draft6 383s # using custom test directory: /optional/format 383s # optional tests included: yes 383s # 383s # filename pass todo-fail fail 383s # --------------------------------------------------------------- 383s # date-time.json 25 0 0 383s # email.json 15 0 0 383s # hostname.json 24 0 0 383s # ipv4.json 16 0 0 383s # ipv6.json 40 0 0 383s # json-pointer.json 38 0 0 383s # unknown.json 7 0 0 383s # uri-reference.json 13 0 0 383s # uri-template.json 9 1 0 383s # uri.json 25 1 0 383s # --------------------------------------------------------------- 383s # TOTAL 212 2 0 383s # 383s # Congratulations, all non-optional tests are passing! 383s # 383s ok 215 - no leaks in the main evaluator object 383s ok 216 - no leaks in the short-circuiting evaluator object 383s 1..216 383s ok 395s t/zzz-acceptance-draft6.t ............... 395s # 395s # AUTHOR_TESTING: 395s # AUTOMATED_TESTING: 1 395s # EXTENDED_TESTING: 395s # NO_TODO: 395s # TEST_DIR: 395s # NO_SHORT_CIRCUIT: 395s # 395s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 395s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft6 against draft6... 395s # 395s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/3", 395s # "keywordLocation": "/additionalItems/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/3", 395s # "keywordLocation": "/additionalItems/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/items/type" 395s # }, 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/2", 395s # "keywordLocation": "/items/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/items/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "additional item not permitted", 395s # "instanceLocation": "/3", 395s # "keywordLocation": "/additionalItems" 395s # }, 395s # { 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "additional item not permitted", 395s # "instanceLocation": "/3", 395s # "keywordLocation": "/additionalItems" 395s # }, 395s # { 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not boolean", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/additionalItems/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not boolean", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/additionalItems/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/additionalItems/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/additionalItems/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "additional item not permitted", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/additionalItems" 395s # }, 395s # { 395s # "error": "additional item not permitted", 395s # "instanceLocation": "/2", 395s # "keywordLocation": "/additionalItems" 395s # }, 395s # { 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "additional item not permitted", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/additionalItems" 395s # }, 395s # { 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s # 395s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "additional property not permitted", 395s # "instanceLocation": "/quux", 395s # "keywordLocation": "/additionalProperties" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "additional property not permitted", 395s # "instanceLocation": "/quux", 395s # "keywordLocation": "/additionalProperties" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "additional property not permitted", 395s # "instanceLocation": "/élmény", 395s # "keywordLocation": "/additionalProperties" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "additional property not permitted", 395s # "instanceLocation": "/élmény", 395s # "keywordLocation": "/additionalProperties" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not boolean", 395s # "instanceLocation": "/quux", 395s # "keywordLocation": "/additionalProperties/type" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not boolean", 395s # "instanceLocation": "/quux", 395s # "keywordLocation": "/additionalProperties/type" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not boolean", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/additionalProperties/type" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not boolean", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/additionalProperties/type" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not boolean", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/additionalProperties/type" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not boolean", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/additionalProperties/type" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s # 395s ok 37 - allOf.json: "allOf" - "allOf" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 38 - allOf.json: "allOf" - "mismatch second" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/required" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/required" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 39 - allOf.json: "allOf" - "mismatch first" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/1/required" 395s # }, 395s # { 395s # "error": "subschema 1 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/1/required" 395s # }, 395s # { 395s # "error": "subschema 1 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 40 - allOf.json: "allOf" - "wrong type" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/bar", 395s # "keywordLocation": "/allOf/0/properties/bar/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/properties" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/bar", 395s # "keywordLocation": "/allOf/0/properties/bar/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/properties" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 41 - allOf.json: "allOf with base schema" - "valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 42 - allOf.json: "allOf with base schema" - "mismatch base schema" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/required" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/required" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 43 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/required" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/required" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 44 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: baz", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/1/required" 395s # }, 395s # { 395s # "error": "subschema 1 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: baz", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/1/required" 395s # }, 395s # { 395s # "error": "subschema 1 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 45 - allOf.json: "allOf with base schema" - "mismatch both" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/required" 395s # }, 395s # { 395s # "error": "object is missing property: baz", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/1/required" 395s # }, 395s # { 395s # "error": "subschemas 0, 1 are not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/required" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 46 - allOf.json: "allOf simple types" - "valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 47 - allOf.json: "allOf simple types" - "mismatch one" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is greater than 30", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/maximum" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is greater than 30", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/maximum" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 48 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 49 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/1" 395s # }, 395s # { 395s # "error": "subschema 1 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/1" 395s # }, 395s # { 395s # "error": "subschema 1 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 50 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0" 395s # }, 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/1" 395s # }, 395s # { 395s # "error": "subschemas 0, 1 are not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 51 - allOf.json: "allOf with one empty schema" - "any data is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 52 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 53 - allOf.json: "allOf with the first empty schema" - "number is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 54 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not number", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/1/type" 395s # }, 395s # { 395s # "error": "subschema 1 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not number", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/1/type" 395s # }, 395s # { 395s # "error": "subschema 1 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 55 - allOf.json: "allOf with the last empty schema" - "number is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 56 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not number", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/type" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not number", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/type" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 57 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 58 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not null", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/allOf/0/type" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/allOf" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not null", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/allOf/0/type" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/allOf" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # }, 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # }, 395s # { 395s # "error": "value is not a multiple of 5", 395s # "instanceLocation": "", 395s # "keywordLocation": "/oneOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/oneOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # }, 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # }, 395s # { 395s # "error": "value is not a multiple of 5", 395s # "instanceLocation": "", 395s # "keywordLocation": "/oneOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/oneOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 62 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 63 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # }, 395s # { 395s # "error": "value is not a multiple of 5", 395s # "instanceLocation": "", 395s # "keywordLocation": "/oneOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/oneOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 5", 395s # "instanceLocation": "", 395s # "keywordLocation": "/oneOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/oneOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 5", 395s # "instanceLocation": "", 395s # "keywordLocation": "/oneOf/0/multipleOf" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/oneOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s # 395s ok 67 - anyOf.json: "anyOf" - "first anyOf valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 68 - anyOf.json: "anyOf" - "second anyOf valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 69 - anyOf.json: "anyOf" - "both anyOf valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 70 - anyOf.json: "anyOf" - "neither anyOf valid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got number, not integer", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/type" 395s # }, 395s # { 395s # "error": "value is less than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/1/minimum" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got number, not integer", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/type" 395s # }, 395s # { 395s # "error": "value is less than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/1/minimum" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 71 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not string", 395s # "instanceLocation": "", 395s # "keywordLocation": "/type" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not string", 395s # "instanceLocation": "", 395s # "keywordLocation": "/type" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 72 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 73 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "length is greater than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/maxLength" 395s # }, 395s # { 395s # "error": "length is less than 4", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/1/minLength" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "length is greater than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/maxLength" 395s # }, 395s # { 395s # "error": "length is less than 4", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/1/minLength" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 74 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 75 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 76 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0" 395s # }, 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/1" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0" 395s # }, 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/1" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 77 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 78 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 79 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 80 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/bar", 395s # "keywordLocation": "/anyOf/0/properties/bar/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/properties" 395s # }, 395s # { 395s # "error": "got integer, not string", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/anyOf/1/properties/foo/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/1/properties" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/bar", 395s # "keywordLocation": "/anyOf/0/properties/bar/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/properties" 395s # }, 395s # { 395s # "error": "got integer, not string", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/anyOf/1/properties/foo/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/1/properties" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 81 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 82 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 83 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 84 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not null", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/anyOf/0/type" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/anyOf" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not null", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/anyOf/0/type" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf/0/anyOf" 395s # }, 395s # { 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/anyOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s # 395s ok 85 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 86 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 87 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 88 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 89 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 90 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 91 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 92 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 93 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 94 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 95 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 96 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 97 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 98 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 99 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 100 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 101 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 102 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s # 395s ok 103 - const.json: "const validation" - "same value is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 104 - const.json: "const validation" - "another value is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 105 - const.json: "const validation" - "another type is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 106 - const.json: "const with object" - "same object is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 107 - const.json: "const with object" - "same object with different property order is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 108 - const.json: "const with object" - "another object is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 109 - const.json: "const with object" - "another type is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 110 - const.json: "const with array" - "same array is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 111 - const.json: "const with array" - "another array item is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/0': wrong type: integer vs object)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/0': wrong type: integer vs object)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 112 - const.json: "const with array" - "array with additional items is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 113 - const.json: "const with null" - "null is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 114 - const.json: "const with null" - "not null is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 115 - const.json: "const with false does not match 0" - "false is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 116 - const.json: "const with false does not match 0" - "integer zero is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 117 - const.json: "const with false does not match 0" - "float zero is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 118 - const.json: "const with true does not match 1" - "true is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 119 - const.json: "const with true does not match 1" - "integer one is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 120 - const.json: "const with true does not match 1" - "float one is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 121 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 122 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 123 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 124 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 125 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 126 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 127 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 128 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 129 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 130 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 131 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 132 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 133 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 134 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 135 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 136 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 137 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 138 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 139 - const.json: "const with 1 does not match true" - "true is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 140 - const.json: "const with 1 does not match true" - "integer one is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 141 - const.json: "const with 1 does not match true" - "float one is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 142 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 143 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 144 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 145 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 146 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 147 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 148 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 149 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 150 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 151 - const.json: "nul characters in strings" - "match string with nul" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 152 - const.json: "nul characters in strings" - "do not match string lacking nul" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/const" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s # 395s ok 153 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 154 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 155 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 156 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is less than 5", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/contains/minimum" 395s # }, 395s # { 395s # "error": "value is less than 5", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/contains/minimum" 395s # }, 395s # { 395s # "error": "value is less than 5", 395s # "instanceLocation": "/2", 395s # "keywordLocation": "/contains/minimum" 395s # }, 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is less than 5", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/contains/minimum" 395s # }, 395s # { 395s # "error": "value is less than 5", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/contains/minimum" 395s # }, 395s # { 395s # "error": "value is less than 5", 395s # "instanceLocation": "/2", 395s # "keywordLocation": "/contains/minimum" 395s # }, 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 157 - contains.json: "contains keyword validation" - "empty array is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 158 - contains.json: "contains keyword validation" - "not array is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 159 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 160 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 161 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/contains/const" 395s # }, 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/contains/const" 395s # }, 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "/2", 395s # "keywordLocation": "/contains/const" 395s # }, 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "/3", 395s # "keywordLocation": "/contains/const" 395s # }, 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/contains/const" 395s # }, 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/contains/const" 395s # }, 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "/2", 395s # "keywordLocation": "/contains/const" 395s # }, 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "/3", 395s # "keywordLocation": "/contains/const" 395s # }, 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 162 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 163 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 164 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/contains" 395s # }, 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/contains" 395s # }, 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 165 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 166 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 167 - contains.json: "items + contains" - "matches items, does not match contains" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/contains/multipleOf" 395s # }, 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/contains/multipleOf" 395s # }, 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "/2", 395s # "keywordLocation": "/contains/multipleOf" 395s # }, 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/contains/multipleOf" 395s # }, 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/contains/multipleOf" 395s # }, 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "/2", 395s # "keywordLocation": "/contains/multipleOf" 395s # }, 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 168 - contains.json: "items + contains" - "does not match items, matches contains" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/multipleOf" 395s # }, 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "/2", 395s # "keywordLocation": "/items/multipleOf" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/multipleOf" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 169 - contains.json: "items + contains" - "matches both items and contains" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 170 - contains.json: "items + contains" - "matches neither items nor contains" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/multipleOf" 395s # }, 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/items/multipleOf" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # }, 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/contains/multipleOf" 395s # }, 395s # { 395s # "error": "value is not a multiple of 3", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/contains/multipleOf" 395s # }, 395s # { 395s # "error": "subschema is not valid against any item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/contains" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/multipleOf" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 171 - contains.json: "contains with null instance elements" - "allows null items" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s # 395s ok 172 - default.json: "invalid type for default" - "valid when property is specified" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 173 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 174 - default.json: "invalid string value for default" - "valid when property is specified" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 175 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s 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)" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s 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)" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is greater than 3", 395s # "instanceLocation": "/alpha", 395s # "keywordLocation": "/properties/alpha/maximum" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/properties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is greater than 3", 395s # "instanceLocation": "/alpha", 395s # "keywordLocation": "/properties/alpha/maximum" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/properties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s 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" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s # 395s ok 179 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 180 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 395s # result: { 395s # "errors": [ 395s # { 395s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/simpleTypes/enum", 395s # "error": "value does not match", 395s # "instanceLocation": "/definitions/foo/type", 395s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf/1/type", 395s # "error": "got integer, not array", 395s # "instanceLocation": "/definitions/foo/type", 395s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf", 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "/definitions/foo/type", 395s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 395s # "error": "not all properties are valid", 395s # "instanceLocation": "/definitions/foo", 395s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/definitions/additionalProperties", 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "/definitions", 395s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/$ref/properties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/simpleTypes/enum", 395s # "error": "value does not match", 395s # "instanceLocation": "/definitions/foo/type", 395s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf/1/type", 395s # "error": "got integer, not array", 395s # "instanceLocation": "/definitions/foo/type", 395s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf", 395s # "error": "no subschemas are valid", 395s # "instanceLocation": "/definitions/foo/type", 395s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 395s # "error": "not all properties are valid", 395s # "instanceLocation": "/definitions/foo", 395s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/definitions/additionalProperties", 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "/definitions", 395s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/$ref/properties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s # 395s ok 181 - dependencies.json: "dependencies" - "neither" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 182 - dependencies.json: "dependencies" - "nondependant" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 183 - dependencies.json: "dependencies" - "with dependency" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 184 - dependencies.json: "dependencies" - "missing dependency" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/bar" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/bar" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 185 - dependencies.json: "dependencies" - "ignores arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 186 - dependencies.json: "dependencies" - "ignores strings" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 187 - dependencies.json: "dependencies" - "ignores other non-objects" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 188 - dependencies.json: "dependencies with empty array" - "empty object" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 189 - dependencies.json: "dependencies with empty array" - "object with one property" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 190 - dependencies.json: "dependencies with empty array" - "non-object is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 191 - dependencies.json: "multiple dependencies" - "neither" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 192 - dependencies.json: "multiple dependencies" - "nondependants" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 193 - dependencies.json: "multiple dependencies" - "with dependencies" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 194 - dependencies.json: "multiple dependencies" - "missing dependency" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/quux" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/quux" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 195 - dependencies.json: "multiple dependencies" - "missing other dependency" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/quux" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/quux" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 196 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing properties: foo, bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/quux" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing properties: foo, bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/quux" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 197 - dependencies.json: "multiple dependencies subschema" - "valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 198 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 199 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/dependencies/bar/properties/foo/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/bar/properties" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/dependencies/bar/properties/foo/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/bar/properties" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 200 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/bar", 395s # "keywordLocation": "/dependencies/bar/properties/bar/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/bar/properties" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/bar", 395s # "keywordLocation": "/dependencies/bar/properties/bar/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/bar/properties" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 201 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/bar", 395s # "keywordLocation": "/dependencies/bar/properties/bar/type" 395s # }, 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/dependencies/bar/properties/foo/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/bar/properties" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/bar", 395s # "keywordLocation": "/dependencies/bar/properties/bar/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/bar/properties" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 202 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema true is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 203 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema false is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/bar" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/bar" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 204 - dependencies.json: "dependencies with boolean subschemas" - "object with both properties is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/bar" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is false", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/bar" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 205 - dependencies.json: "dependencies with boolean subschemas" - "empty object is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 206 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 207 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 208 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 209 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo\rbar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/foo\nbar" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo\rbar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/foo\nbar" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 210 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object has fewer than 4 properties", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object has fewer than 4 properties", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 211 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo\"bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/foo'bar/required" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo\"bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/foo'bar/required" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 212 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo'bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/foo\"bar" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: foo'bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/foo\"bar" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 213 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "additional property not permitted", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/dependencies/foo/additionalProperties" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/foo/additionalProperties" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "additional property not permitted", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/dependencies/foo/additionalProperties" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/foo/additionalProperties" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 214 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 215 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "additional property not permitted", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/dependencies/foo/additionalProperties" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/foo/additionalProperties" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "additional property not permitted", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/dependencies/foo/additionalProperties" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies/foo/additionalProperties" 395s # }, 395s # { 395s # "error": "not all dependencies are satisfied", 395s # "instanceLocation": "", 395s # "keywordLocation": "/dependencies" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 216 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s # 395s ok 217 - enum.json: "simple enum validation" - "one of the enum is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 218 - enum.json: "simple enum validation" - "something else is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 219 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 220 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 221 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 395s # result: { 395s # "errors": [ 395s # { 395s # "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)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "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)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 222 - enum.json: "heterogeneous enum validation" - "valid object matches" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 223 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 224 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 225 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 226 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 227 - enum.json: "enums in properties" - "both properties are valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 228 - enum.json: "enums in properties" - "wrong foo value" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/properties/foo/enum" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/properties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/properties/foo/enum" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/properties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 229 - enum.json: "enums in properties" - "wrong bar value" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "/bar", 395s # "keywordLocation": "/properties/bar/enum" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/properties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "/bar", 395s # "keywordLocation": "/properties/bar/enum" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/properties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 230 - enum.json: "enums in properties" - "missing optional property is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 231 - enum.json: "enums in properties" - "missing required property is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/required" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/required" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 232 - enum.json: "enums in properties" - "missing all properties is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/required" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object is missing property: bar", 395s # "instanceLocation": "", 395s # "keywordLocation": "/required" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 233 - enum.json: "enum with escaped characters" - "member 1 is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 234 - enum.json: "enum with escaped characters" - "member 2 is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 235 - enum.json: "enum with escaped characters" - "another string is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 236 - enum.json: "enum with false does not match 0" - "false is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 237 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 238 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 239 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 240 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 241 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 242 - enum.json: "enum with true does not match 1" - "true is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 243 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 244 - enum.json: "enum with true does not match 1" - "float one is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 245 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 246 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 247 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 248 - enum.json: "enum with 0 does not match false" - "false is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 249 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 250 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 251 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 252 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 253 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 254 - enum.json: "enum with 1 does not match true" - "true is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 255 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 256 - enum.json: "enum with 1 does not match true" - "float one is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 257 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 258 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 259 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 260 - enum.json: "nul characters in strings" - "match string with nul" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 261 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value does not match", 395s # "instanceLocation": "", 395s # "keywordLocation": "/enum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s # 395s ok 262 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 263 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is greater than or equal to 3", 395s # "instanceLocation": "", 395s # "keywordLocation": "/exclusiveMaximum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is greater than or equal to 3", 395s # "instanceLocation": "", 395s # "keywordLocation": "/exclusiveMaximum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 264 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is greater than or equal to 3", 395s # "instanceLocation": "", 395s # "keywordLocation": "/exclusiveMaximum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is greater than or equal to 3", 395s # "instanceLocation": "", 395s # "keywordLocation": "/exclusiveMaximum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 265 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s # 395s ok 266 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 267 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is less than or equal to 1.1", 395s # "instanceLocation": "", 395s # "keywordLocation": "/exclusiveMinimum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is less than or equal to 1.1", 395s # "instanceLocation": "", 395s # "keywordLocation": "/exclusiveMinimum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 268 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is less than or equal to 1.1", 395s # "instanceLocation": "", 395s # "keywordLocation": "/exclusiveMinimum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is less than or equal to 1.1", 395s # "instanceLocation": "", 395s # "keywordLocation": "/exclusiveMinimum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 269 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s # 395s ok 270 - format.json: "email format" - "all string formats ignore integers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 271 - format.json: "email format" - "all string formats ignore floats" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 272 - format.json: "email format" - "all string formats ignore objects" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 273 - format.json: "email format" - "all string formats ignore arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 274 - format.json: "email format" - "all string formats ignore booleans" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 275 - format.json: "email format" - "all string formats ignore nulls" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 276 - format.json: "ipv4 format" - "all string formats ignore integers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 277 - format.json: "ipv4 format" - "all string formats ignore floats" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 278 - format.json: "ipv4 format" - "all string formats ignore objects" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 279 - format.json: "ipv4 format" - "all string formats ignore arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 280 - format.json: "ipv4 format" - "all string formats ignore booleans" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 281 - format.json: "ipv4 format" - "all string formats ignore nulls" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 282 - format.json: "ipv6 format" - "all string formats ignore integers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 283 - format.json: "ipv6 format" - "all string formats ignore floats" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 284 - format.json: "ipv6 format" - "all string formats ignore objects" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 285 - format.json: "ipv6 format" - "all string formats ignore arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 286 - format.json: "ipv6 format" - "all string formats ignore booleans" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 287 - format.json: "ipv6 format" - "all string formats ignore nulls" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 288 - format.json: "hostname format" - "all string formats ignore integers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 289 - format.json: "hostname format" - "all string formats ignore floats" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 290 - format.json: "hostname format" - "all string formats ignore objects" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 291 - format.json: "hostname format" - "all string formats ignore arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 292 - format.json: "hostname format" - "all string formats ignore booleans" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 293 - format.json: "hostname format" - "all string formats ignore nulls" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 294 - format.json: "date-time format" - "all string formats ignore integers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 295 - format.json: "date-time format" - "all string formats ignore floats" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 296 - format.json: "date-time format" - "all string formats ignore objects" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 297 - format.json: "date-time format" - "all string formats ignore arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 298 - format.json: "date-time format" - "all string formats ignore booleans" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 299 - format.json: "date-time format" - "all string formats ignore nulls" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 300 - format.json: "json-pointer format" - "all string formats ignore integers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 301 - format.json: "json-pointer format" - "all string formats ignore floats" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 302 - format.json: "json-pointer format" - "all string formats ignore objects" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 303 - format.json: "json-pointer format" - "all string formats ignore arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 304 - format.json: "json-pointer format" - "all string formats ignore booleans" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 305 - format.json: "json-pointer format" - "all string formats ignore nulls" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 306 - format.json: "uri format" - "all string formats ignore integers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 307 - format.json: "uri format" - "all string formats ignore floats" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 308 - format.json: "uri format" - "all string formats ignore objects" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 309 - format.json: "uri format" - "all string formats ignore arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 310 - format.json: "uri format" - "all string formats ignore booleans" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 311 - format.json: "uri format" - "all string formats ignore nulls" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 312 - format.json: "uri-reference format" - "all string formats ignore integers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 313 - format.json: "uri-reference format" - "all string formats ignore floats" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 314 - format.json: "uri-reference format" - "all string formats ignore objects" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 315 - format.json: "uri-reference format" - "all string formats ignore arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 316 - format.json: "uri-reference format" - "all string formats ignore booleans" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 317 - format.json: "uri-reference format" - "all string formats ignore nulls" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 318 - format.json: "uri-template format" - "all string formats ignore integers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 319 - format.json: "uri-template format" - "all string formats ignore floats" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 320 - format.json: "uri-template format" - "all string formats ignore objects" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 321 - format.json: "uri-template format" - "all string formats ignore arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 322 - format.json: "uri-template format" - "all string formats ignore booleans" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 323 - format.json: "uri-template format" - "all string formats ignore nulls" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s # 395s 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" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s 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" { 395s # result: { 395s # "errors": [ 395s # { 395s # "absoluteKeywordLocation": "#/definitions/int/type", 395s # "error": "got string, not integer", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/properties" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "#/definitions/int/type", 395s # "error": "got string, not integer", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 395s # }, 395s # { 395s # "error": "not all additional properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/1/additionalProperties" 395s # }, 395s # { 395s # "error": "subschemas 0, 1 are not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "absoluteKeywordLocation": "#/definitions/int/type", 395s # "error": "got string, not integer", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf/0/properties" 395s # }, 395s # { 395s # "error": "subschema 0 is not valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/allOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s # 395s ok 326 - items.json: "a schema given for items" - "valid items" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 327 - items.json: "a schema given for items" - "wrong type of items" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/items/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/items/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 328 - items.json: "a schema given for items" - "ignores non-arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 329 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 330 - items.json: "an array of schemas for items" - "correct types" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 331 - items.json: "an array of schemas for items" - "wrong types" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/0/type" 395s # }, 395s # { 395s # "error": "got integer, not string", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/items/1/type" 395s # }, 395s # { 395s # "error": "not all items are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not integer", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/0/type" 395s # }, 395s # { 395s # "error": "not all items are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 332 - items.json: "an array of schemas for items" - "incomplete array of items" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 333 - items.json: "an array of schemas for items" - "array with additional items" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 334 - items.json: "an array of schemas for items" - "empty array" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 335 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 336 - items.json: "items with boolean schema (true)" - "any array is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 337 - items.json: "items with boolean schema (true)" - "empty array is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 338 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "item not permitted", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items" 395s # }, 395s # { 395s # "error": "item not permitted", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/items" 395s # }, 395s # { 395s # "error": "item not permitted", 395s # "instanceLocation": "/2", 395s # "keywordLocation": "/items" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "item not permitted", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 339 - items.json: "items with boolean schema (false)" - "empty array is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 340 - items.json: "items with boolean schemas" - "array with one item is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 341 - items.json: "items with boolean schemas" - "array with two items is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "item not permitted", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/items/1" 395s # }, 395s # { 395s # "error": "not all items are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "item not permitted", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/items/1" 395s # }, 395s # { 395s # "error": "not all items are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 342 - items.json: "items with boolean schemas" - "empty array is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 343 - items.json: "items and subitems" - "valid items" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 344 - items.json: "items and subitems" - "too many items" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "additional item not permitted", 395s # "instanceLocation": "/3", 395s # "keywordLocation": "/additionalItems" 395s # }, 395s # { 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "additional item not permitted", 395s # "instanceLocation": "/3", 395s # "keywordLocation": "/additionalItems" 395s # }, 395s # { 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/additionalItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 345 - items.json: "items and subitems" - "too many sub-items" { 395s # result: { 395s # "errors": [ 395s # { 395s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 395s # "error": "additional item not permitted", 395s # "instanceLocation": "/0/2", 395s # "keywordLocation": "/items/0/$ref/additionalItems" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/0/$ref/additionalItems" 395s # }, 395s # { 395s # "error": "not all items are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 395s # "error": "additional item not permitted", 395s # "instanceLocation": "/0/2", 395s # "keywordLocation": "/items/0/$ref/additionalItems" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 395s # "error": "subschema is not valid against all additional items", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/0/$ref/additionalItems" 395s # }, 395s # { 395s # "error": "not all items are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 346 - items.json: "items and subitems" - "wrong item" { 395s # result: { 395s # "errors": [ 395s # { 395s # "absoluteKeywordLocation": "#/definitions/item/type", 395s # "error": "got object, not array", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/0/$ref/type" 395s # }, 395s # { 395s # "error": "not all items are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "absoluteKeywordLocation": "#/definitions/item/type", 395s # "error": "got object, not array", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/0/$ref/type" 395s # }, 395s # { 395s # "error": "not all items are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 347 - items.json: "items and subitems" - "wrong sub-item" { 395s # result: { 395s # "errors": [ 395s # { 395s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 395s # "error": "object is missing property: foo", 395s # "instanceLocation": "/0/0", 395s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "#/definitions/item/items", 395s # "error": "not all items are valid", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/0/$ref/items" 395s # }, 395s # { 395s # "error": "not all items are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 395s # "error": "object is missing property: foo", 395s # "instanceLocation": "/0/0", 395s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 395s # }, 395s # { 395s # "absoluteKeywordLocation": "#/definitions/item/items", 395s # "error": "not all items are valid", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/0/$ref/items" 395s # }, 395s # { 395s # "error": "not all items are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 348 - items.json: "items and subitems" - "fewer items is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 349 - items.json: "nested items" - "valid nested array" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 350 - items.json: "nested items" - "nested array with invalid type" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not number", 395s # "instanceLocation": "/0/0/0/0", 395s # "keywordLocation": "/items/items/items/items/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/0/0/0", 395s # "keywordLocation": "/items/items/items/items" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/0/0", 395s # "keywordLocation": "/items/items/items" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/items" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got string, not number", 395s # "instanceLocation": "/0/0/0/0", 395s # "keywordLocation": "/items/items/items/items/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/0/0/0", 395s # "keywordLocation": "/items/items/items/items" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/0/0", 395s # "keywordLocation": "/items/items/items" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/items" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 351 - items.json: "nested items" - "not deep enough" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not array", 395s # "instanceLocation": "/0/0/0", 395s # "keywordLocation": "/items/items/items/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/0/0", 395s # "keywordLocation": "/items/items/items" 395s # }, 395s # { 395s # "error": "got integer, not array", 395s # "instanceLocation": "/0/1/0", 395s # "keywordLocation": "/items/items/items/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/0/1", 395s # "keywordLocation": "/items/items/items" 395s # }, 395s # { 395s # "error": "got integer, not array", 395s # "instanceLocation": "/0/2/0", 395s # "keywordLocation": "/items/items/items/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/0/2", 395s # "keywordLocation": "/items/items/items" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/items" 395s # }, 395s # { 395s # "error": "got integer, not array", 395s # "instanceLocation": "/1/0/0", 395s # "keywordLocation": "/items/items/items/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/1/0", 395s # "keywordLocation": "/items/items/items" 395s # }, 395s # { 395s # "error": "got integer, not array", 395s # "instanceLocation": "/1/1/0", 395s # "keywordLocation": "/items/items/items/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/1/1", 395s # "keywordLocation": "/items/items/items" 395s # }, 395s # { 395s # "error": "got integer, not array", 395s # "instanceLocation": "/1/2/0", 395s # "keywordLocation": "/items/items/items/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/1/2", 395s # "keywordLocation": "/items/items/items" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/1", 395s # "keywordLocation": "/items/items" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "got integer, not array", 395s # "instanceLocation": "/0/0/0", 395s # "keywordLocation": "/items/items/items/type" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/0/0", 395s # "keywordLocation": "/items/items/items" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "/0", 395s # "keywordLocation": "/items/items" 395s # }, 395s # { 395s # "error": "subschema is not valid against all items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/items" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 352 - items.json: "single-form items with null instance elements" - "allows null elements" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 353 - items.json: "array-form items with null instance elements" - "allows null elements" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s # 395s ok 354 - maxItems.json: "maxItems validation" - "shorter is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 355 - maxItems.json: "maxItems validation" - "exact length is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 356 - maxItems.json: "maxItems validation" - "too long is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "array has more than 2 items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "array has more than 2 items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 357 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 358 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 359 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "array has more than 2 items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "array has more than 2 items", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s # 395s ok 360 - maxLength.json: "maxLength validation" - "shorter is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 361 - maxLength.json: "maxLength validation" - "exact length is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 362 - maxLength.json: "maxLength validation" - "too long is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "length is greater than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxLength" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "length is greater than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxLength" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 363 - maxLength.json: "maxLength validation" - "ignores non-strings" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 364 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 365 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 366 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "length is greater than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxLength" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "length is greater than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxLength" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s # 395s ok 367 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 368 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 369 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object has more than 2 properties", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object has more than 2 properties", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 370 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 371 - maxProperties.json: "maxProperties validation" - "ignores strings" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 372 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 373 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 374 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object has more than 2 properties", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object has more than 2 properties", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 375 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 376 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object has more than 0 property", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object has more than 0 property", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maxProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s # 395s ok 377 - maximum.json: "maximum validation" - "below the maximum is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 378 - maximum.json: "maximum validation" - "boundary point is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 379 - maximum.json: "maximum validation" - "above the maximum is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is greater than 3", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maximum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is greater than 3", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maximum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 380 - maximum.json: "maximum validation" - "ignores non-numbers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 381 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 382 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 383 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 384 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is greater than 300", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maximum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is greater than 300", 395s # "instanceLocation": "", 395s # "keywordLocation": "/maximum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s # 395s ok 385 - minItems.json: "minItems validation" - "longer is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 386 - minItems.json: "minItems validation" - "exact length is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 387 - minItems.json: "minItems validation" - "too short is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "array has fewer than 1 item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "array has fewer than 1 item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 388 - minItems.json: "minItems validation" - "ignores non-arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 389 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 390 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "array has fewer than 1 item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "array has fewer than 1 item", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minItems" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s # 395s ok 391 - minLength.json: "minLength validation" - "longer is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 392 - minLength.json: "minLength validation" - "exact length is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 393 - minLength.json: "minLength validation" - "too short is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "length is less than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minLength" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "length is less than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minLength" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 394 - minLength.json: "minLength validation" - "ignores non-strings" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 395 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "length is less than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minLength" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "length is less than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minLength" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 396 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 397 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "length is less than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minLength" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "length is less than 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minLength" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s # 395s ok 398 - minProperties.json: "minProperties validation" - "longer is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 399 - minProperties.json: "minProperties validation" - "exact length is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 400 - minProperties.json: "minProperties validation" - "too short is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object has fewer than 1 property", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object has fewer than 1 property", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 401 - minProperties.json: "minProperties validation" - "ignores arrays" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 402 - minProperties.json: "minProperties validation" - "ignores strings" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 403 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 404 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 405 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "object has fewer than 1 property", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "object has fewer than 1 property", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minProperties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s # 395s ok 406 - minimum.json: "minimum validation" - "above the minimum is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 407 - minimum.json: "minimum validation" - "boundary point is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 408 - minimum.json: "minimum validation" - "below the minimum is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is less than 1.1", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minimum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is less than 1.1", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minimum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 409 - minimum.json: "minimum validation" - "ignores non-numbers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 410 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 411 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 412 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 413 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 414 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is less than -2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minimum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is less than -2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minimum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 415 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is less than -2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minimum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is less than -2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/minimum" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 416 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s # 395s ok 417 - multipleOf.json: "by int" - "int by int" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 418 - multipleOf.json: "by int" - "int by int fail" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/multipleOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 2", 395s # "instanceLocation": "", 395s # "keywordLocation": "/multipleOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 419 - multipleOf.json: "by int" - "ignores non-numbers" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 420 - multipleOf.json: "by number" - "zero is multiple of anything" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 421 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 422 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 1.5", 395s # "instanceLocation": "", 395s # "keywordLocation": "/multipleOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 1.5", 395s # "instanceLocation": "", 395s # "keywordLocation": "/multipleOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 423 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 424 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 0.0001", 395s # "instanceLocation": "", 395s # "keywordLocation": "/multipleOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 0.0001", 395s # "instanceLocation": "", 395s # "keywordLocation": "/multipleOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 425 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 0.123456789", 395s # "instanceLocation": "", 395s # "keywordLocation": "/multipleOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "value is not a multiple of 0.123456789", 395s # "instanceLocation": "", 395s # "keywordLocation": "/multipleOf" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 426 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s # 395s ok 427 - not.json: "not" - "allowed" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 428 - not.json: "not" - "disallowed" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 429 - not.json: "not multiple types" - "valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 430 - not.json: "not multiple types" - "mismatch" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 431 - not.json: "not multiple types" - "other mismatch" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 432 - not.json: "not more complex schema" - "match" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 433 - not.json: "not more complex schema" - "other match" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 434 - not.json: "not more complex schema" - "mismatch" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 435 - not.json: "forbidden property" - "property present" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/properties/foo/not" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/properties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "/foo", 395s # "keywordLocation": "/properties/foo/not" 395s # }, 395s # { 395s # "error": "not all properties are valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/properties" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 436 - not.json: "forbidden property" - "property absent" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 437 - not.json: "forbid everything with empty schema" - "number is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 438 - not.json: "forbid everything with empty schema" - "string is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 439 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 440 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 441 - not.json: "forbid everything with empty schema" - "null is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 442 - not.json: "forbid everything with empty schema" - "object is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 443 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 444 - not.json: "forbid everything with empty schema" - "array is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 445 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is valid", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 446 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 447 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 448 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 449 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 450 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 451 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 452 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 453 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 454 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 395s # result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s # short-circuited result: { 395s # "errors": [ 395s # { 395s # "error": "subschema is true", 395s # "instanceLocation": "", 395s # "keywordLocation": "/not" 395s # } 395s # ], 395s # "valid": false 395s # } 395s ok 1 - test passes: data is valid: false 395s 1..1 395s } 395s ok 455 - not.json: "allow everything with boolean schema false" - "number is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 456 - not.json: "allow everything with boolean schema false" - "string is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 457 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 395s } 395s ok 458 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 395s # result: { 395s # "valid": true 395s # } 395s # short-circuited result: { 395s # "valid": true 395s # } 395s ok 1 - test passes: data is valid: true 395s 1..1 396s } 396s ok 459 - not.json: "allow everything with boolean schema false" - "null is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 460 - not.json: "allow everything with boolean schema false" - "object is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 461 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 462 - not.json: "allow everything with boolean schema false" - "array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 463 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 464 - not.json: "double negation" - "any value is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s # 396s ok 465 - oneOf.json: "oneOf" - "first oneOf valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 466 - oneOf.json: "oneOf" - "second oneOf valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 467 - oneOf.json: "oneOf" - "both oneOf valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 468 - oneOf.json: "oneOf" - "neither oneOf valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/type" 396s # }, 396s # { 396s # "error": "value is less than 2", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/minimum" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/type" 396s # }, 396s # { 396s # "error": "value is less than 2", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/minimum" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 469 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # }, 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 470 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 471 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 472 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1, 2", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 473 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 474 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 475 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "subschema is false", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0" 396s # }, 396s # { 396s # "error": "subschema is false", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1" 396s # }, 396s # { 396s # "error": "subschema is false", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/2" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "subschema is false", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0" 396s # }, 396s # { 396s # "error": "subschema is false", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1" 396s # }, 396s # { 396s # "error": "subschema is false", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/2" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 476 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 477 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 478 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 479 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/oneOf/0/properties/bar/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/properties" 396s # }, 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/oneOf/1/properties/foo/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/properties" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/oneOf/0/properties/bar/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/properties" 396s # }, 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/oneOf/1/properties/foo/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/properties" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 480 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 481 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 482 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing property: foo", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/required" 396s # }, 396s # { 396s # "error": "object is missing properties: foo, baz", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/required" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing property: foo", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/required" 396s # }, 396s # { 396s # "error": "object is missing properties: foo, baz", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/required" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 483 - oneOf.json: "oneOf with required" - "first valid - valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 484 - oneOf.json: "oneOf with required" - "second valid - valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 485 - oneOf.json: "oneOf with required" - "both valid - invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 486 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 487 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 488 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "multiple subschemas are valid: 0, 1", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 489 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing property: bar", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/required" 396s # }, 396s # { 396s # "error": "object is missing property: foo", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/required" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing property: bar", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/required" 396s # }, 396s # { 396s # "error": "object is missing property: foo", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/required" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 490 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 491 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/oneOf/0/type" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/oneOf" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/oneOf/0/type" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/oneOf" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s # 396s ok 492 - pattern.json: "pattern validation" - "a matching pattern is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 493 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 494 - pattern.json: "pattern validation" - "ignores booleans" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 495 - pattern.json: "pattern validation" - "ignores integers" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 496 - pattern.json: "pattern validation" - "ignores floats" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 497 - pattern.json: "pattern validation" - "ignores objects" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 498 - pattern.json: "pattern validation" - "ignores arrays" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 499 - pattern.json: "pattern validation" - "ignores null" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 500 - pattern.json: "pattern is not anchored" - "matches a substring" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s # 396s ok 501 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 502 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 503 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/patternProperties/f.*o/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/patternProperties/f.*o/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 504 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/patternProperties/f.*o/type" 396s # }, 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/foooooo", 396s # "keywordLocation": "/patternProperties/f.*o/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/patternProperties/f.*o/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 505 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 506 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 507 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 508 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 509 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 510 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 511 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/a", 396s # "keywordLocation": "/patternProperties/a*/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/a", 396s # "keywordLocation": "/patternProperties/a*/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 512 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "value is greater than 20", 396s # "instanceLocation": "/aaaa", 396s # "keywordLocation": "/patternProperties/aaa*/maximum" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "value is greater than 20", 396s # "instanceLocation": "/aaaa", 396s # "keywordLocation": "/patternProperties/aaa*/maximum" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 513 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/aaa", 396s # "keywordLocation": "/patternProperties/a*/type" 396s # }, 396s # { 396s # "error": "value is greater than 20", 396s # "instanceLocation": "/aaaa", 396s # "keywordLocation": "/patternProperties/aaa*/maximum" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/aaa", 396s # "keywordLocation": "/patternProperties/a*/type" 396s # }, 396s # { 396s # "error": "value is greater than 20", 396s # "instanceLocation": "/aaaa", 396s # "keywordLocation": "/patternProperties/aaa*/maximum" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 514 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 515 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not boolean", 396s # "instanceLocation": "/a31b", 396s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not boolean", 396s # "instanceLocation": "/a31b", 396s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 516 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 517 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "/a_X_3", 396s # "keywordLocation": "/patternProperties/X_/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "/a_X_3", 396s # "keywordLocation": "/patternProperties/X_/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 518 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 519 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "property not permitted", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/patternProperties/b.*" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "property not permitted", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/patternProperties/b.*" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 520 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "property not permitted", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/patternProperties/b.*" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "property not permitted", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/patternProperties/b.*" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 521 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "property not permitted", 396s # "instanceLocation": "/foobar", 396s # "keywordLocation": "/patternProperties/b.*" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "property not permitted", 396s # "instanceLocation": "/foobar", 396s # "keywordLocation": "/patternProperties/b.*" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 522 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 523 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s # 396s ok 524 - properties.json: "object properties validation" - "both properties present and valid is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 525 - properties.json: "object properties validation" - "one property invalid is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not string", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/properties/bar/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not string", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/properties/bar/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 526 - properties.json: "object properties validation" - "both properties invalid is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not string", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/properties/bar/type" 396s # }, 396s # { 396s # "error": "got array, not integer", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not string", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/properties/bar/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 527 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 528 - properties.json: "object properties validation" - "ignores arrays" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 529 - properties.json: "object properties validation" - "ignores other non-objects" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 530 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 531 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "array has more than 3 items", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/maxItems" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "array has more than 3 items", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/maxItems" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 532 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "array has fewer than 2 items", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/patternProperties/f.o/minItems" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "array has fewer than 2 items", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/patternProperties/f.o/minItems" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 533 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 534 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "array has fewer than 2 items", 396s # "instanceLocation": "/fxo", 396s # "keywordLocation": "/patternProperties/f.o/minItems" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "array has fewer than 2 items", 396s # "instanceLocation": "/fxo", 396s # "keywordLocation": "/patternProperties/f.o/minItems" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 535 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 536 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 537 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/quux", 396s # "keywordLocation": "/additionalProperties/type" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/quux", 396s # "keywordLocation": "/additionalProperties/type" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 538 - properties.json: "properties with boolean schema" - "no property present is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 539 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 540 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "property not permitted", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/properties/bar" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "property not permitted", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/properties/bar" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 541 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "property not permitted", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/properties/bar" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "property not permitted", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/properties/bar" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 542 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 543 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not number", 396s # "instanceLocation": "/foo\tbar", 396s # "keywordLocation": "/properties/foo\tbar/type" 396s # }, 396s # { 396s # "error": "got string, not number", 396s # "instanceLocation": "/foo\nbar", 396s # "keywordLocation": "/properties/foo\nbar/type" 396s # }, 396s # { 396s # "error": "got string, not number", 396s # "instanceLocation": "/foo\fbar", 396s # "keywordLocation": "/properties/foo\fbar/type" 396s # }, 396s # { 396s # "error": "got string, not number", 396s # "instanceLocation": "/foo\rbar", 396s # "keywordLocation": "/properties/foo\rbar/type" 396s # }, 396s # { 396s # "error": "got string, not number", 396s # "instanceLocation": "/foo\"bar", 396s # "keywordLocation": "/properties/foo\"bar/type" 396s # }, 396s # { 396s # "error": "got string, not number", 396s # "instanceLocation": "/foo\\bar", 396s # "keywordLocation": "/properties/foo\\bar/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not number", 396s # "instanceLocation": "/foo\tbar", 396s # "keywordLocation": "/properties/foo\tbar/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 544 - properties.json: "properties with null valued instance properties" - "allows null values" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 545 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 546 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 547 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 548 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not number", 396s # "instanceLocation": "/__proto__", 396s # "keywordLocation": "/properties/__proto__/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not number", 396s # "instanceLocation": "/__proto__", 396s # "keywordLocation": "/properties/__proto__/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 549 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "/toString/length", 396s # "keywordLocation": "/properties/toString/properties/length/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/toString", 396s # "keywordLocation": "/properties/toString/properties" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "/toString/length", 396s # "keywordLocation": "/properties/toString/properties/length/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/toString", 396s # "keywordLocation": "/properties/toString/properties" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 550 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not number", 396s # "instanceLocation": "/constructor", 396s # "keywordLocation": "/properties/constructor/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not number", 396s # "instanceLocation": "/constructor", 396s # "keywordLocation": "/properties/constructor/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 551 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s # 396s ok 552 - propertyNames.json: "propertyNames validation" - "all property names valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 553 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "length is greater than 3", 396s # "instanceLocation": "/foobar", 396s # "keywordLocation": "/propertyNames/maxLength" 396s # }, 396s # { 396s # "error": "not all property names are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/propertyNames" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "length is greater than 3", 396s # "instanceLocation": "/foobar", 396s # "keywordLocation": "/propertyNames/maxLength" 396s # }, 396s # { 396s # "error": "not all property names are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/propertyNames" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 554 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 555 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 556 - propertyNames.json: "propertyNames validation" - "ignores strings" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 557 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 558 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 559 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "/aaA", 396s # "keywordLocation": "/propertyNames/pattern" 396s # }, 396s # { 396s # "error": "not all property names are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/propertyNames" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "/aaA", 396s # "keywordLocation": "/propertyNames/pattern" 396s # }, 396s # { 396s # "error": "not all property names are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/propertyNames" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 560 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 561 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 562 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 563 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "subschema is false", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/propertyNames" 396s # }, 396s # { 396s # "error": "not all property names are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/propertyNames" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "subschema is false", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/propertyNames" 396s # }, 396s # { 396s # "error": "not all property names are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/propertyNames" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 564 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 565 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 566 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "value does not match", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/propertyNames/const" 396s # }, 396s # { 396s # "error": "not all property names are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/propertyNames" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "value does not match", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/propertyNames/const" 396s # }, 396s # { 396s # "error": "not all property names are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/propertyNames" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 567 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 568 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 569 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 570 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "value does not match", 396s # "instanceLocation": "/baz", 396s # "keywordLocation": "/propertyNames/enum" 396s # }, 396s # { 396s # "error": "not all property names are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/propertyNames" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "value does not match", 396s # "instanceLocation": "/baz", 396s # "keywordLocation": "/propertyNames/enum" 396s # }, 396s # { 396s # "error": "not all property names are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/propertyNames" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 571 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s # 396s ok 572 - ref.json: "root pointer ref" - "match" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 573 - ref.json: "root pointer ref" - "recursive match" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 574 - ref.json: "root pointer ref" - "mismatch" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 575 - ref.json: "root pointer ref" - "recursive mismatch" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/additionalProperties", 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/foo/bar", 396s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "#/additionalProperties", 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/additionalProperties", 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/foo/bar", 396s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "#/additionalProperties", 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 576 - ref.json: "relative pointer ref to object" - "match" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 577 - ref.json: "relative pointer ref to object" - "mismatch" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/properties/foo/type", 396s # "error": "got boolean, not integer", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/properties/bar/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/properties/foo/type", 396s # "error": "got boolean, not integer", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/properties/bar/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 578 - ref.json: "relative pointer ref to array" - "match array" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 579 - ref.json: "relative pointer ref to array" - "mismatch array" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/items/0/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/1", 396s # "keywordLocation": "/items/1/$ref/type" 396s # }, 396s # { 396s # "error": "not all items are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/items" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/items/0/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/1", 396s # "keywordLocation": "/items/1/$ref/type" 396s # }, 396s # { 396s # "error": "not all items are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/items" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 580 - ref.json: "escaped pointer ref" - "slash invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/slash", 396s # "keywordLocation": "/properties/slash/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/slash", 396s # "keywordLocation": "/properties/slash/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 581 - ref.json: "escaped pointer ref" - "tilde invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/tilde", 396s # "keywordLocation": "/properties/tilde/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/tilde", 396s # "keywordLocation": "/properties/tilde/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 582 - ref.json: "escaped pointer ref" - "percent invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/percent", 396s # "keywordLocation": "/properties/percent/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/percent", 396s # "keywordLocation": "/properties/percent/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 583 - ref.json: "escaped pointer ref" - "slash valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 584 - ref.json: "escaped pointer ref" - "tilde valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 585 - ref.json: "escaped pointer ref" - "percent valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 586 - ref.json: "nested refs" - "nested ref valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 587 - ref.json: "nested refs" - "nested ref invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/a/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 396s # }, 396s # { 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/a/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 396s # }, 396s # { 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 588 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 589 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 590 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/reffed/type", 396s # "error": "got string, not array", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/reffed/type", 396s # "error": "got string, not array", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 591 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 396s # "error": "got string, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 396s # "error": "got string, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 592 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 593 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 594 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeInteger/minimum", 396s # "error": "value is less than 0", 396s # "instanceLocation": "/minLength", 396s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeIntegerDefault0/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "/minLength", 396s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/$ref/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeInteger/minimum", 396s # "error": "value is less than 0", 396s # "instanceLocation": "/minLength", 396s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeIntegerDefault0/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "/minLength", 396s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/$ref/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 595 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 596 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "/$ref", 396s # "keywordLocation": "/properties/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "/$ref", 396s # "keywordLocation": "/properties/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 597 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 598 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/is-string/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/$ref", 396s # "keywordLocation": "/properties/$ref/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/is-string/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/$ref", 396s # "keywordLocation": "/properties/$ref/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 599 - ref.json: "$ref to boolean schema true" - "any value is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 600 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/bool", 396s # "error": "subschema is false", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref" 396s # }, 396s # { 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/bool", 396s # "error": "subschema is false", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref" 396s # }, 396s # { 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 601 - ref.json: "Recursive references between schemas" - "valid tree" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 602 - ref.json: "Recursive references between schemas" - "invalid tree" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 396s # "error": "got string, not number", 396s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 396s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/nodes/0/subtree/nodes/0", 396s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 396s # "error": "subschema is not valid against all items", 396s # "instanceLocation": "/nodes/0/subtree/nodes", 396s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/nodes/0/subtree", 396s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/nodes/0", 396s # "keywordLocation": "/properties/nodes/items/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 396s # "error": "subschema is not valid against all items", 396s # "instanceLocation": "/nodes", 396s # "keywordLocation": "/properties/nodes/items" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 396s # "error": "got string, not number", 396s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 396s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/nodes/0/subtree/nodes/0", 396s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 396s # "error": "subschema is not valid against all items", 396s # "instanceLocation": "/nodes/0/subtree/nodes", 396s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/nodes/0/subtree", 396s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/nodes/0", 396s # "keywordLocation": "/properties/nodes/items/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 396s # "error": "subschema is not valid against all items", 396s # "instanceLocation": "/nodes", 396s # "keywordLocation": "/properties/nodes/items" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 603 - ref.json: "refs with quote" - "object with numbers is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 604 - ref.json: "refs with quote" - "object with strings is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 396s # "error": "got string, not number", 396s # "instanceLocation": "/foo\"bar", 396s # "keywordLocation": "/properties/foo\"bar/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 396s # "error": "got string, not number", 396s # "instanceLocation": "/foo\"bar", 396s # "keywordLocation": "/properties/foo\"bar/$ref/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 605 - ref.json: "Location-independent identifier" - "match" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 606 - ref.json: "Location-independent identifier" - "mismatch" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/A/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/A/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 607 - ref.json: "Reference an anchor with a non-relative URI" - "match" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 608 - ref.json: "Reference an anchor with a non-relative URI" - "mismatch" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 609 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 610 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s 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" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/enum" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/enum" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s 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" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/enum" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/enum" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 613 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 614 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo/bar", 396s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/allOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo/bar", 396s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/allOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 615 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/allOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/allOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 616 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 617 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo/bar", 396s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/allOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo/bar", 396s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/allOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 618 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/allOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/allOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 619 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 620 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 621 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 396s # "error": "value is less than 30", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/minimum" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 396s # "error": "value is less than 30", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/minimum" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 622 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 623 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 624 - ref.json: "URN base URI with NSS" - "a string is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 625 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 626 - ref.json: "URN base URI with r-component" - "a string is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 627 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 628 - ref.json: "URN base URI with q-component" - "a string is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 629 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 630 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 631 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 632 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 633 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/foo", 396s # "keywordLocation": "/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 634 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 635 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 636 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 637 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 396s # "error": "got string, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 396s # "error": "got string, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 638 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 639 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 396s # "error": "got string, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 396s # "error": "got string, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 640 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 641 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions//definitions//type", 396s # "error": "got string, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions//definitions//type", 396s # "error": "got string, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/type" 396s # }, 396s # { 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s # 396s ok 642 - refRemote.json: "remote ref" - "remote ref valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 643 - refRemote.json: "remote ref" - "remote ref invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/$ref/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/$ref/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 644 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 645 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/$ref/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/$ref/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 646 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 647 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/$ref/$ref/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/subSchemas.json#/definitions/integer/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/$ref/$ref/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 648 - refRemote.json: "base URI change" - "base URI change ref valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 649 - refRemote.json: "base URI change" - "base URI change ref invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/0/0", 396s # "keywordLocation": "/items/items/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 396s # "error": "subschema is not valid against all items", 396s # "instanceLocation": "/0", 396s # "keywordLocation": "/items/items" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 396s # "error": "subschema is not valid against all items", 396s # "instanceLocation": "", 396s # "keywordLocation": "/items" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/0/0", 396s # "keywordLocation": "/items/items/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 396s # "error": "subschema is not valid against all items", 396s # "instanceLocation": "/0", 396s # "keywordLocation": "/items/items" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 396s # "error": "subschema is not valid against all items", 396s # "instanceLocation": "", 396s # "keywordLocation": "/items" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 650 - refRemote.json: "base URI change - change folder" - "number is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 651 - refRemote.json: "base URI change - change folder" - "string is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/list/0", 396s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 396s # "error": "subschema is not valid against all items", 396s # "instanceLocation": "/list", 396s # "keywordLocation": "/properties/list/$ref/items" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/list/0", 396s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 396s # "error": "subschema is not valid against all items", 396s # "instanceLocation": "/list", 396s # "keywordLocation": "/properties/list/$ref/items" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 652 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 653 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/list/0", 396s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 396s # "error": "subschema is not valid against all items", 396s # "instanceLocation": "/list", 396s # "keywordLocation": "/properties/list/$ref/items" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "/list/0", 396s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 396s # "error": "subschema is not valid against all items", 396s # "instanceLocation": "/list", 396s # "keywordLocation": "/properties/list/$ref/items" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 654 - refRemote.json: "root ref in remote ref" - "string is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 655 - refRemote.json: "root ref in remote ref" - "null is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 656 - refRemote.json: "root ref in remote ref" - "object is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf/0/type", 396s # "error": "got object, not null", 396s # "instanceLocation": "/name", 396s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/type", 396s # "error": "got object, not string", 396s # "instanceLocation": "/name", 396s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf", 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "/name", 396s # "keywordLocation": "/properties/name/$ref/anyOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf/0/type", 396s # "error": "got object, not null", 396s # "instanceLocation": "/name", 396s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/type", 396s # "error": "got object, not string", 396s # "instanceLocation": "/name", 396s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/name.json#/definitions/orNull/anyOf", 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "/name", 396s # "keywordLocation": "/properties/name/$ref/anyOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 657 - refRemote.json: "remote ref with ref to definitions" - "invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/allOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties/bar/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/bar", 396s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/definitions/inner/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/ref-and-definitions.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf/0/$ref/allOf" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 396s # "error": "subschema 0 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/allOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 658 - refRemote.json: "remote ref with ref to definitions" - "valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 659 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 660 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/locationIndependentIdentifier.json#/definitions/A/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/$ref/$ref/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/locationIndependentIdentifier.json#/definitions/A/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/$ref/$ref/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 661 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/name/foo", 396s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/name", 396s # "keywordLocation": "/properties/name/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "/name/foo", 396s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "/name", 396s # "keywordLocation": "/properties/name/$ref/properties" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/properties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 662 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 663 - refRemote.json: "$ref to $ref finds location-independent $id" - "number is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 664 - refRemote.json: "$ref to $ref finds location-independent $id" - "non-number is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/detached-ref.json#/definitions/detached/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/$ref/$ref/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "http://localhost:1234/draft6/detached-ref.json#/definitions/detached/type", 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/$ref/$ref/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s # 396s ok 665 - required.json: "required validation" - "present required property is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 666 - required.json: "required validation" - "non-present required property is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing property: foo", 396s # "instanceLocation": "", 396s # "keywordLocation": "/required" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing property: foo", 396s # "instanceLocation": "", 396s # "keywordLocation": "/required" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 667 - required.json: "required validation" - "ignores arrays" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 668 - required.json: "required validation" - "ignores strings" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 669 - required.json: "required validation" - "ignores other non-objects" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 670 - required.json: "required default validation" - "not required by default" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 671 - required.json: "required with empty array" - "property not required" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 672 - required.json: "required with escaped characters" - "object with all properties present is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 673 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 396s # "instanceLocation": "", 396s # "keywordLocation": "/required" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 396s # "instanceLocation": "", 396s # "keywordLocation": "/required" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 674 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 675 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 676 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing properties: __proto__, toString, constructor", 396s # "instanceLocation": "", 396s # "keywordLocation": "/required" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing properties: __proto__, toString, constructor", 396s # "instanceLocation": "", 396s # "keywordLocation": "/required" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 677 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing properties: toString, constructor", 396s # "instanceLocation": "", 396s # "keywordLocation": "/required" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing properties: toString, constructor", 396s # "instanceLocation": "", 396s # "keywordLocation": "/required" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 678 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing properties: __proto__, constructor", 396s # "instanceLocation": "", 396s # "keywordLocation": "/required" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing properties: __proto__, constructor", 396s # "instanceLocation": "", 396s # "keywordLocation": "/required" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 679 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing properties: __proto__, toString", 396s # "instanceLocation": "", 396s # "keywordLocation": "/required" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "object is missing properties: __proto__, toString", 396s # "instanceLocation": "", 396s # "keywordLocation": "/required" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 680 - required.json: "required properties whose names are Javascript object property names" - "all present" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s # 396s ok 681 - type.json: "integer type matches integers" - "an integer is an integer" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 682 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 683 - type.json: "integer type matches integers" - "a float is not an integer" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 684 - type.json: "integer type matches integers" - "a string is not an integer" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 685 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 686 - type.json: "integer type matches integers" - "an object is not an integer" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 687 - type.json: "integer type matches integers" - "an array is not an integer" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 688 - type.json: "integer type matches integers" - "a boolean is not an integer" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 689 - type.json: "integer type matches integers" - "null is not an integer" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not integer", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 690 - type.json: "number type matches numbers" - "an integer is a number" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 691 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 692 - type.json: "number type matches numbers" - "a float is a number" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 693 - type.json: "number type matches numbers" - "a string is not a number" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 694 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 695 - type.json: "number type matches numbers" - "an object is not a number" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 696 - type.json: "number type matches numbers" - "an array is not a number" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 697 - type.json: "number type matches numbers" - "a boolean is not a number" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 698 - type.json: "number type matches numbers" - "null is not a number" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not number", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 699 - type.json: "string type matches strings" - "1 is not a string" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 700 - type.json: "string type matches strings" - "a float is not a string" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 701 - type.json: "string type matches strings" - "a string is a string" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 702 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 703 - type.json: "string type matches strings" - "an empty string is still a string" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 704 - type.json: "string type matches strings" - "an object is not a string" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 705 - type.json: "string type matches strings" - "an array is not a string" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 706 - type.json: "string type matches strings" - "a boolean is not a string" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 707 - type.json: "string type matches strings" - "null is not a string" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 708 - type.json: "object type matches objects" - "an integer is not an object" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 709 - type.json: "object type matches objects" - "a float is not an object" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 710 - type.json: "object type matches objects" - "a string is not an object" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 711 - type.json: "object type matches objects" - "an object is an object" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 712 - type.json: "object type matches objects" - "an array is not an object" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 713 - type.json: "object type matches objects" - "a boolean is not an object" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 714 - type.json: "object type matches objects" - "null is not an object" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 715 - type.json: "array type matches arrays" - "an integer is not an array" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not array", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not array", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 716 - type.json: "array type matches arrays" - "a float is not an array" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not array", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not array", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 717 - type.json: "array type matches arrays" - "a string is not an array" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not array", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not array", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 718 - type.json: "array type matches arrays" - "an object is not an array" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not array", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not array", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 719 - type.json: "array type matches arrays" - "an array is an array" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 720 - type.json: "array type matches arrays" - "a boolean is not an array" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not array", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not array", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 721 - type.json: "array type matches arrays" - "null is not an array" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not array", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not array", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 722 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 723 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 724 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 725 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 726 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 727 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 728 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 729 - type.json: "boolean type matches booleans" - "true is a boolean" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 730 - type.json: "boolean type matches booleans" - "false is a boolean" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 731 - type.json: "boolean type matches booleans" - "null is not a boolean" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not boolean", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 732 - type.json: "null type matches only the null object" - "an integer is not null" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 733 - type.json: "null type matches only the null object" - "a float is not null" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 734 - type.json: "null type matches only the null object" - "zero is not null" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 735 - type.json: "null type matches only the null object" - "a string is not null" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 736 - type.json: "null type matches only the null object" - "an empty string is not null" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 737 - type.json: "null type matches only the null object" - "an object is not null" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 738 - type.json: "null type matches only the null object" - "an array is not null" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 739 - type.json: "null type matches only the null object" - "true is not null" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 740 - type.json: "null type matches only the null object" - "false is not null" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 741 - type.json: "null type matches only the null object" - "null is null" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 742 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 743 - type.json: "multiple types can be specified in an array" - "a string is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 744 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not one of integer, string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got number, not one of integer, string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 745 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not one of integer, string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got object, not one of integer, string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 746 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not one of integer, string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got array, not one of integer, string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 747 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not one of integer, string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got boolean, not one of integer, string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 748 - type.json: "multiple types can be specified in an array" - "null is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not one of integer, string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not one of integer, string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 749 - type.json: "type as array with one item" - "string is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 750 - type.json: "type as array with one item" - "number is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not one of string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not one of string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 751 - type.json: "type: array or object" - "array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 752 - type.json: "type: array or object" - "object is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 753 - type.json: "type: array or object" - "number is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not one of array, object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not one of array, object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 754 - type.json: "type: array or object" - "string is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not one of array, object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not one of array, object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 755 - type.json: "type: array or object" - "null is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not one of array, object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got null, not one of array, object", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 756 - type.json: "type: array, object or null" - "array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 757 - type.json: "type: array, object or null" - "object is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 758 - type.json: "type: array, object or null" - "null is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 759 - type.json: "type: array, object or null" - "number is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not one of array, object, null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not one of array, object, null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 760 - type.json: "type: array, object or null" - "string is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not one of array, object, null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not one of array, object, null", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s # 396s ok 761 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 762 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 763 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 2 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 2 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 764 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 765 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 766 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 767 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 768 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 2 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 2 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 769 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 770 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 771 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 772 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 773 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 774 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 775 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 776 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 2 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 2 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 777 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 778 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 779 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 780 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 781 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 782 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 783 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 784 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 4 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 4 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 785 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 786 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 787 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 788 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 789 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 790 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 791 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 792 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 793 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 794 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 795 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 2 and 3 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 2 and 3 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 796 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 2 and 3 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 2 and 3 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 797 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 798 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 799 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 800 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "items at indices 0 and 1 are not unique", 396s # "instanceLocation": "", 396s # "keywordLocation": "/uniqueItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 801 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "additional item not permitted", 396s # "instanceLocation": "/2", 396s # "keywordLocation": "/additionalItems" 396s # }, 396s # { 396s # "error": "subschema is not valid against all additional items", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "additional item not permitted", 396s # "instanceLocation": "/2", 396s # "keywordLocation": "/additionalItems" 396s # }, 396s # { 396s # "error": "subschema is not valid against all additional items", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 802 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 803 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 804 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 805 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 806 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 807 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 808 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 809 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 810 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 811 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 812 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 813 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 814 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 815 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 816 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 817 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 818 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 819 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 820 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 821 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 822 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 823 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 824 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 825 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 826 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 827 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 828 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 829 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "additional item not permitted", 396s # "instanceLocation": "/2", 396s # "keywordLocation": "/additionalItems" 396s # }, 396s # { 396s # "error": "subschema is not valid against all additional items", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "additional item not permitted", 396s # "instanceLocation": "/2", 396s # "keywordLocation": "/additionalItems" 396s # }, 396s # { 396s # "error": "subschema is not valid against all additional items", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalItems" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s # 396s ok 830 - optional/bignum.json: "integer" - "a bignum is an integer" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 831 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 832 - optional/bignum.json: "number" - "a bignum is a number" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 833 - optional/bignum.json: "number" - "a negative bignum is a number" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 834 - optional/bignum.json: "string" - "a bignum is not a string" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got integer, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/type" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 835 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 836 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 396s # "instanceLocation": "", 396s # "keywordLocation": "/exclusiveMaximum" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 396s # "instanceLocation": "", 396s # "keywordLocation": "/exclusiveMaximum" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 837 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 838 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 396s # "instanceLocation": "", 396s # "keywordLocation": "/exclusiveMinimum" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 396s # "instanceLocation": "", 396s # "keywordLocation": "/exclusiveMinimum" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s # 396s ok 839 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 840 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 841 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 842 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 843 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 844 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 845 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 846 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 847 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true # 396s 1..1 396s } 396s 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" 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected false; got true 396s # schema: { 396s # "pattern": "^\\d$", 396s # "type": "string" 396s # } 396s # data: "߀" 396s # result: 1 396s 1..1 396s } 396s 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" 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected false; got true 396s # schema: { 396s # "pattern": "^\\d$", 396s # "type": "string" 396s # } 396s # data: "߀" 396s # result: 1 396s 1..1 396s } 396s 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" 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false # 396s 1..1 396s } 396s 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" 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected true; got false 396s # schema: { 396s # "pattern": "^\\D$", 396s # "type": "string" 396s # } 396s # data: "߀" 396s # result: 0 396s 1..1 396s } 396s 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" 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected true; got false 396s # schema: { 396s # "pattern": "^\\D$", 396s # "type": "string" 396s # } 396s # data: "߀" 396s # result: 0 396s 1..1 396s } 396s ok 853 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true # 396s 1..1 396s } 396s 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" 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected false; got true 396s # schema: { 396s # "pattern": "^\\w$", 396s # "type": "string" 396s # } 396s # data: "é" 396s # result: 1 396s 1..1 396s } 396s 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" 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false # 396s 1..1 396s } 396s 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" 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected true; got false 396s # schema: { 396s # "pattern": "^\\W$", 396s # "type": "string" 396s # } 396s # data: "é" 396s # result: 0 396s 1..1 396s } 396s ok 857 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 858 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 859 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 860 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 861 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 862 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected true; got false 396s # schema: { 396s # "pattern": "^\\s$", 396s # "type": "string" 396s # } 396s # data: "" 396s # result: 0 396s 1..1 396s } 396s ok 863 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 864 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 865 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 866 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 867 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 868 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 869 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 870 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 871 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 872 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s 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" 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected false; got true 396s # schema: { 396s # "pattern": "^\\S$", 396s # "type": "string" 396s # } 396s # data: "" 396s # result: 1 396s 1..1 396s } 396s ok 874 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 875 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 876 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 877 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 878 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 879 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 880 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 881 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 882 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 883 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s 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" 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected false; got true 396s # schema: { 396s # "pattern": "\\wcole" 396s # } 396s # 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." 396s # result: 1 396s 1..1 396s } 396s 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" 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected false; got true 396s # schema: { 396s # "pattern": "\\wcole" 396s # } 396s # 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." 396s # result: 1 396s 1..1 396s } 396s ok 886 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 887 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 888 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 889 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 890 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 891 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s 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" 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected false; got true 396s # schema: { 396s # "pattern": "^\\d+$" 396s # } 396s # data: "৪২" 396s # result: 1 396s 1..1 396s } 396s ok 893 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 894 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 895 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 896 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 897 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 898 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 899 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/L'ÉCOLE", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/L'ÉCOLE", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 900 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s 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" 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected false; got true 396s # schema: { 396s # "additionalProperties": false, 396s # "patternProperties": { 396s # "\\wcole": true 396s # }, 396s # "type": "object" 396s # } 396s # data: { 396s # "l'école": "pas de vraie vie" 396s # } 396s # result: 1 396s 1..1 396s } 396s 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" 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected false; got true 396s # schema: { 396s # "additionalProperties": false, 396s # "patternProperties": { 396s # "\\wcole": true 396s # }, 396s # "type": "object" 396s # } 396s # data: { 396s # "l'école": "pas de vraie vie" 396s # } 396s # result: 1 396s 1..1 396s } 396s ok 903 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/L'ÉCOLE", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/L'ÉCOLE", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 904 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/l'école", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/l'école", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 905 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/l'école", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/l'école", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 906 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 907 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 908 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/-%#", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/-%#", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s 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" 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s not ok 1 - evaluation result is incorrect # 396s # Failed test (with amnesty) 'evaluation result is incorrect' 396s # at t/zzz-acceptance-draft6.t line 51. 396s # expected false; got true 396s # schema: { 396s # "additionalProperties": false, 396s # "patternProperties": { 396s # "^\\d+$": true 396s # }, 396s # "type": "object" 396s # } 396s # data: { 396s # "৪২": "khajit has wares if you have coin" 396s # } 396s # result: 1 396s 1..1 396s } 396s ok 910 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 911 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/-%#", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "additional property not permitted", 396s # "instanceLocation": "/-%#", 396s # "keywordLocation": "/additionalProperties" 396s # }, 396s # { 396s # "error": "not all additional properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/additionalProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 912 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s # 396s ok 913 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s # 396s ok 914 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 915 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 916 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/0/$ref/enum" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/1/$ref/type" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/0/$ref/enum" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/1/$ref/type" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 917 - optional/id.json: "non-schema object containing a plain-name $id property" - "skip traversing definition for a valid result" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 918 - optional/id.json: "non-schema object containing a plain-name $id property" - "const at const_not_anchor does not match" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/const" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 396s # }, 396s # { 396s # "error": "subschema 1 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/allOf" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/const" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 396s # }, 396s # { 396s # "error": "subschema 1 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/allOf" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 919 - optional/id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 920 - optional/id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/const" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 396s # }, 396s # { 396s # "error": "subschema 1 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/allOf" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/0/const" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 396s # "error": "value does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 396s # }, 396s # { 396s # "error": "subschema 1 is not valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf/1/allOf" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/oneOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s # 396s ok 921 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 922 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 923 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 924 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 925 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 926 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 927 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "pattern does not match", 396s # "instanceLocation": "", 396s # "keywordLocation": "/pattern" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 928 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 929 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 930 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 931 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/🐲", 396s # "keywordLocation": "/patternProperties/^🐲*$/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/🐲", 396s # "keywordLocation": "/patternProperties/^🐲*$/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 932 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 396s # result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/🐲🐲", 396s # "keywordLocation": "/patternProperties/^🐲*$/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "error": "got string, not integer", 396s # "instanceLocation": "/🐲🐲", 396s # "keywordLocation": "/patternProperties/^🐲*$/type" 396s # }, 396s # { 396s # "error": "not all properties are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/patternProperties" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s # 396s 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" { 396s # result: { 396s # "valid": true 396s # } 396s # short-circuited result: { 396s # "valid": true 396s # } 396s ok 1 - test passes: data is valid: true 396s 1..1 396s } 396s ok 934 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 396s # "error": "subschema is valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/0/$ref/not" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 396s # "error": "subschema is valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/1/$ref/not" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 396s # "error": "got null, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/2/$ref/type" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 396s # "error": "subschema is valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/0/$ref/not" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 396s # "error": "subschema is valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/1/$ref/not" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 396s # "error": "got null, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/2/$ref/type" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s ok 935 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 396s # result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 396s # "error": "subschema is valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/0/$ref/not" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 396s # "error": "subschema is valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/1/$ref/not" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/2/$ref/type" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s # short-circuited result: { 396s # "errors": [ 396s # { 396s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 396s # "error": "subschema is valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/0/$ref/not" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 396s # "error": "subschema is valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/1/$ref/not" 396s # }, 396s # { 396s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 396s # "error": "got integer, not string", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf/2/$ref/type" 396s # }, 396s # { 396s # "error": "no subschemas are valid", 396s # "instanceLocation": "", 396s # "keywordLocation": "/anyOf" 396s # } 396s # ], 396s # "valid": false 396s # } 396s ok 1 - test passes: data is valid: false 396s 1..1 396s } 396s # 396s # generated with: Test::JSON::Schema::Acceptance 1.029 396s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 396s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 396s # specification version: draft6 396s # optional tests included: yes 396s # skipping directory: optional/format 396s # 396s # filename pass todo-fail fail 396s # --------------------------------------------------------------- 396s # additionalItems.json 20 0 0 396s # additionalProperties.json 16 0 0 396s # allOf.json 30 0 0 396s # anyOf.json 18 0 0 396s # boolean_schema.json 18 0 0 396s # const.json 50 0 0 396s # contains.json 19 0 0 396s # default.json 7 0 0 396s # definitions.json 2 0 0 396s # dependencies.json 36 0 0 396s # enum.json 45 0 0 396s # exclusiveMaximum.json 4 0 0 396s # exclusiveMinimum.json 4 0 0 396s # format.json 54 0 0 396s # infinite-loop-detection.json 2 0 0 396s # items.json 28 0 0 396s # maxItems.json 6 0 0 396s # maxLength.json 7 0 0 396s # maxProperties.json 10 0 0 396s # maximum.json 8 0 0 396s # minItems.json 6 0 0 396s # minLength.json 7 0 0 396s # minProperties.json 8 0 0 396s # minimum.json 11 0 0 396s # multipleOf.json 10 0 0 396s # not.json 38 0 0 396s # oneOf.json 27 0 0 396s # pattern.json 9 0 0 396s # patternProperties.json 23 0 0 396s # properties.json 28 0 0 396s # propertyNames.json 20 0 0 396s # ref.json 70 0 0 396s # refRemote.json 23 0 0 396s # required.json 16 0 0 396s # type.json 80 0 0 396s # uniqueItems.json 69 0 0 396s # optional/bignum.json 9 0 0 396s # optional/ecmascript-regex.json 60 14 0 396s # optional/float-overflow.json 1 0 0 396s # optional/id.json 7 0 0 396s # optional/non-bmp-regex.json 12 0 0 396s # optional/unknownKeyword.json 3 0 0 396s # --------------------------------------------------------------- 396s # TOTAL 921 14 0 396s # 396s # Congratulations, all non-optional tests are passing! 396s # 396s ok 936 - no leaks in the main evaluator object 396s ok 937 - no leaks in the short-circuiting evaluator object 396s 1..937 396s ok 400s t/zzz-acceptance-draft7-format.t ........ 400s # 400s # AUTHOR_TESTING: 400s # AUTOMATED_TESTING: 1 400s # EXTENDED_TESTING: 400s # NO_TODO: 400s # TEST_DIR: 400s # NO_SHORT_CIRCUIT: 400s # 400s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft7/optional/format against draft7... 400s # 400s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date-time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s # 400s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 32 - date.json: "validation of date strings" - "a valid date string" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 64 - date.json: "validation of date strings" - "invalid month" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid date string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s # 400s ok 73 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 74 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 75 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 76 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 77 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 78 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 79 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 80 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid email string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid email string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 81 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 82 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 83 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 84 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid email string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid email string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 85 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid email string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid email string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 86 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 87 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid email string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid email string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s # 400s ok 88 - hostname.json: "validation of host names" - "all string formats ignore integers" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 89 - hostname.json: "validation of host names" - "all string formats ignore floats" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 90 - hostname.json: "validation of host names" - "all string formats ignore objects" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 91 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 92 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 93 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 94 - hostname.json: "validation of host names" - "a valid host name" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 95 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 96 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 97 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 98 - hostname.json: "validation of host names" - "a host name with a component too long" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 99 - hostname.json: "validation of host names" - "starts with hyphen" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 100 - hostname.json: "validation of host names" - "ends with hyphen" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 101 - hostname.json: "validation of host names" - "starts with underscore" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 102 - hostname.json: "validation of host names" - "ends with underscore" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 103 - hostname.json: "validation of host names" - "contains underscore" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 104 - hostname.json: "validation of host names" - "maximum label length" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 105 - hostname.json: "validation of host names" - "exceeds maximum label length" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 106 - hostname.json: "validation of host names" - "single label" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 107 - hostname.json: "validation of host names" - "single label with hyphen" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 108 - hostname.json: "validation of host names" - "single label with digits" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 109 - hostname.json: "validation of host names" - "single label ending with digit" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 110 - hostname.json: "validation of host names" - "empty string" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 111 - hostname.json: "validation of host names" - "single dot" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s # 400s ok 112 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 113 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 114 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 115 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 116 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 117 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 118 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 119 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-email string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-email string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 120 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 121 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-email string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-email string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s # 400s ok 122 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 123 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 124 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 125 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 126 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 127 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s 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" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s 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" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s 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" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "실〮례.테스트" 400s # result: 1 400s 1..1 400s } 400s 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" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s ok 132 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s ok 133 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 134 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "xn--X" 400s # result: 1 400s 1..1 400s } 400s 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" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "XN--aa---o47jg78q" 400s # result: 1 400s 1..1 400s } 400s ok 136 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s ok 137 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s 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" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s ok 139 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s ok 140 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s ok 141 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s 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" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s 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" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s 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" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "ـߺ" 400s # result: 1 400s 1..1 400s } 400s 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" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "〱〲〳〴〵〮〯〻" 400s # result: 1 400s 1..1 400s } 400s ok 146 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "a·l" 400s # result: 1 400s 1..1 400s } 400s ok 147 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "·l" 400s # result: 1 400s 1..1 400s } 400s ok 148 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "l·a" 400s # result: 1 400s 1..1 400s } 400s ok 149 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "l·" 400s # result: 1 400s 1..1 400s } 400s ok 150 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 151 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "α͵S" 400s # result: 1 400s 1..1 400s } 400s ok 152 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "α͵" 400s # result: 1 400s 1..1 400s } 400s ok 153 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 154 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s ok 155 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "׳ב" 400s # result: 1 400s 1..1 400s } 400s ok 156 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 157 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s ok 158 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "״ב" 400s # result: 1 400s 1..1 400s } 400s ok 159 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s 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" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "def・abc" 400s # result: 1 400s 1..1 400s } 400s ok 161 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "idn-hostname" 400s # } 400s # data: "・" 400s # result: 1 400s 1..1 400s } 400s ok 162 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 163 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 164 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s 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" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s 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" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s 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" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 168 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s ok 169 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s ok 170 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 171 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s 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" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 173 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 174 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 175 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 176 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 177 - idn-hostname.json: "validation of internationalized host names" - "empty string" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false # 400s 1..1 400s } 400s ok 178 - idn-hostname.json: "validation of separators in internationalized host names" - "single dot" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 179 - idn-hostname.json: "validation of separators in internationalized host names" - "single ideographic full stop" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 180 - idn-hostname.json: "validation of separators in internationalized host names" - "single fullwidth full stop" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 181 - idn-hostname.json: "validation of separators in internationalized host names" - "single halfwidth ideographic full stop" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid idn-hostname string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 182 - idn-hostname.json: "validation of separators in internationalized host names" - "dot as label separator" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 183 - idn-hostname.json: "validation of separators in internationalized host names" - "ideographic full stop as label separator" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 184 - idn-hostname.json: "validation of separators in internationalized host names" - "fullwidth full stop as label separator" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 185 - idn-hostname.json: "validation of separators in internationalized host names" - "halfwidth ideographic full stop as label separator" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s # 400s ok 186 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 187 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 188 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 189 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 190 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 191 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 192 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 193 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 194 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 195 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 196 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 197 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 198 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 199 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 200 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 201 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv4 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s # 400s ok 202 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 203 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 204 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 205 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 206 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 207 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 208 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 209 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 210 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 211 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 212 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 213 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 214 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 215 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 216 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 217 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 218 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 219 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 220 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 221 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 222 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 223 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 224 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 225 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 226 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 227 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 228 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 229 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 230 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 231 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 232 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 233 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 234 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 235 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 236 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 237 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 238 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 239 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 240 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 241 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid ipv6 string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s # 400s ok 242 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 243 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 244 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 245 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 246 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 247 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 248 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 249 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 250 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 251 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "iri-reference" 400s # } 400s # data: "\\\\WINDOWS\\filëßåré" 400s # result: 1 400s 1..1 400s } 400s ok 252 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 253 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true # 400s 1..1 400s } 400s ok 254 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "iri-reference" 400s # } 400s # data: "#ƒräg\\mênt" 400s # result: 1 400s 1..1 400s } 400s # 400s ok 255 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 256 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 257 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 258 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 259 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 260 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 261 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 262 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 263 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 264 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 265 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 266 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s not ok 1 - evaluation result is incorrect # 400s # Failed test (with amnesty) 'evaluation result is incorrect' 400s # at t/zzz-acceptance-draft7-format.t line 70. 400s # expected false; got true 400s # schema: { 400s # "format": "iri" 400s # } 400s # data: "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334" 400s # result: 1 400s 1..1 400s } 400s ok 267 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid iri string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid iri string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 268 - iri.json: "validation of IRIs" - "an invalid IRI" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid iri string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid iri string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 269 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid iri string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid iri string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s # 400s ok 270 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 271 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 272 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 273 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 274 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 275 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 276 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 277 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 278 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 279 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 280 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 281 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 282 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 283 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 284 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 285 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 286 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 287 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 288 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 289 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 290 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 291 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 292 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 293 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 294 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 295 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 296 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 297 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 298 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 299 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 300 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 301 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 302 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 303 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 304 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 305 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s # 400s ok 308 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 309 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 310 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 311 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 312 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 313 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 314 - regex.json: "validation of regular expressions" - "a valid regular expression" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 315 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid regex string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid regex string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s # 400s ok 316 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 317 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 318 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 319 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 320 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 321 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 322 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 323 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 324 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 325 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 326 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 327 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 328 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 329 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 330 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 331 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 332 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid relative-json-pointer string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 333 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s # 400s ok 334 - time.json: "validation of time strings" - "all string formats ignore integers" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 335 - time.json: "validation of time strings" - "all string formats ignore floats" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 336 - time.json: "validation of time strings" - "all string formats ignore objects" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 337 - time.json: "validation of time strings" - "all string formats ignore arrays" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 338 - time.json: "validation of time strings" - "all string formats ignore booleans" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 339 - time.json: "validation of time strings" - "all string formats ignore nulls" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 340 - time.json: "validation of time strings" - "a valid time string" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 341 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 342 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 343 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 344 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 345 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 346 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 347 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 400s # result: { 400s # "valid": true 400s # } 400s # short-circuited result: { 400s # "valid": true 400s # } 400s ok 1 - test passes: data is valid: true 400s 1..1 400s } 400s ok 348 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 349 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 400s # result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s # short-circuited result: { 400s # "errors": [ 400s # { 400s # "error": "not a valid time string", 400s # "instanceLocation": "", 400s # "keywordLocation": "/format" 400s # } 400s # ], 400s # "valid": false 400s # } 400s ok 1 - test passes: data is valid: false 400s 1..1 400s } 400s ok 350 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 351 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 352 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 353 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 354 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 355 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 356 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 357 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 358 - time.json: "validation of time strings" - "a valid time string with second fraction" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 359 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 360 - time.json: "validation of time strings" - "a valid time string with plus offset" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 361 - time.json: "validation of time strings" - "a valid time string with minus offset" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 362 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 363 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 364 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 365 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 366 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 367 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 368 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 369 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 370 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 371 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 372 - time.json: "validation of time strings" - "an invalid offset indicator" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 373 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 374 - time.json: "validation of time strings" - "no time offset" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 375 - time.json: "validation of time strings" - "no time offset with second fraction" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 376 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 377 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 378 - time.json: "validation of time strings" - "contains letters" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid time string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s # 401s ok 379 - unknown.json: "unknown format" - "unknown formats ignore integers" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 380 - unknown.json: "unknown format" - "unknown formats ignore floats" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 381 - unknown.json: "unknown format" - "unknown formats ignore objects" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 382 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 383 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 384 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 385 - unknown.json: "unknown format" - "unknown formats ignore strings" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s # 401s ok 386 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 387 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 388 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 389 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 390 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 391 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 392 - uri-reference.json: "validation of URI References" - "a valid URI" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 393 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 394 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 395 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri-reference string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri-reference string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 396 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 397 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 398 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri-reference string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri-reference string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s # 401s ok 399 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true # 401s 1..1 401s } 401s ok 400 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true # 401s 1..1 401s } 401s ok 401 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true # 401s 1..1 401s } 401s ok 402 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true # 401s 1..1 401s } 401s ok 403 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true # 401s 1..1 401s } 401s ok 404 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true # 401s 1..1 401s } 401s ok 405 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true # 401s 1..1 401s } 401s ok 406 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s not ok 1 - evaluation result is incorrect # 401s # Failed test (with amnesty) 'evaluation result is incorrect' 401s # at t/zzz-acceptance-draft7-format.t line 70. 401s # expected false; got true 401s # schema: { 401s # "format": "uri-template" 401s # } 401s # data: "http://example.com/dictionary/{term:1}/{term" 401s # result: 1 401s 1..1 401s } 401s ok 407 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true # 401s 1..1 401s } 401s ok 408 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true # 401s 1..1 401s } 401s # 401s ok 409 - uri.json: "validation of URIs" - "all string formats ignore integers" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 410 - uri.json: "validation of URIs" - "all string formats ignore floats" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 411 - uri.json: "validation of URIs" - "all string formats ignore objects" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 412 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 413 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 414 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 415 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 416 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 417 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 418 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 419 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 420 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 421 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 422 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 423 - uri.json: "validation of URIs" - "a valid URL " { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 424 - uri.json: "validation of URIs" - "a valid mailto URI" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 425 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 426 - uri.json: "validation of URIs" - "a valid tel URI" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 427 - uri.json: "validation of URIs" - "a valid URN" { 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s ok 1 - test passes: data is valid: true 401s 1..1 401s } 401s ok 428 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 429 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 430 - uri.json: "validation of URIs" - "an invalid URI" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 431 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 432 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 433 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 401s # result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s # short-circuited result: { 401s # "errors": [ 401s # { 401s # "error": "not a valid uri string", 401s # "instanceLocation": "", 401s # "keywordLocation": "/format" 401s # } 401s # ], 401s # "valid": false 401s # } 401s ok 1 - test passes: data is valid: false 401s 1..1 401s } 401s ok 434 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 401s # result: { 401s # "valid": true 401s # } 401s # short-circuited result: { 401s # "valid": true 401s # } 401s not ok 1 - evaluation result is incorrect # 401s # Failed test (with amnesty) 'evaluation result is incorrect' 401s # at t/zzz-acceptance-draft7-format.t line 70. 401s # expected false; got true 401s # schema: { 401s # "format": "uri" 401s # } 401s # data: "bar,baz:foo" 401s # result: 1 401s 1..1 401s } 401s # 401s # generated with: Test::JSON::Schema::Acceptance 1.029 401s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 401s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 401s # specification version: draft7 401s # using custom test directory: /optional/format 401s # optional tests included: yes 401s # 401s # filename pass todo-fail fail 401s # --------------------------------------------------------------- 401s # date-time.json 25 0 0 401s # date.json 47 0 0 401s # email.json 15 0 0 401s # hostname.json 24 0 0 401s # idn-email.json 10 0 0 401s # idn-hostname.json 49 15 0 401s # ipv4.json 16 0 0 401s # ipv6.json 40 0 0 401s # iri-reference.json 11 2 0 401s # iri.json 14 1 0 401s # json-pointer.json 38 0 0 401s # regex.json 8 0 0 401s # relative-json-pointer.json 18 0 0 401s # time.json 45 0 0 401s # unknown.json 7 0 0 401s # uri-reference.json 13 0 0 401s # uri-template.json 9 1 0 401s # uri.json 25 1 0 401s # --------------------------------------------------------------- 401s # TOTAL 414 20 0 401s # 401s # Congratulations, all non-optional tests are passing! 401s # 401s ok 435 - no leaks in the main evaluator object 401s ok 436 - no leaks in the short-circuiting evaluator object 401s 1..436 401s ok 414s t/zzz-acceptance-draft7.t ............... 414s # 414s # AUTHOR_TESTING: 414s # AUTOMATED_TESTING: 1 414s # EXTENDED_TESTING: 414s # NO_TODO: 414s # TEST_DIR: 414s # NO_SHORT_CIRCUIT: 414s # 414s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 414s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft7 against draft7... 414s # 414s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/3", 414s # "keywordLocation": "/additionalItems/type" 414s # }, 414s # { 414s # "error": "subschema is not valid against all additional items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalItems" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/3", 414s # "keywordLocation": "/additionalItems/type" 414s # }, 414s # { 414s # "error": "subschema is not valid against all additional items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalItems" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/items/type" 414s # }, 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/2", 414s # "keywordLocation": "/items/type" 414s # }, 414s # { 414s # "error": "subschema is not valid against all items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/items" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/items/type" 414s # }, 414s # { 414s # "error": "subschema is not valid against all items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/items" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "additional item not permitted", 414s # "instanceLocation": "/3", 414s # "keywordLocation": "/additionalItems" 414s # }, 414s # { 414s # "error": "subschema is not valid against all additional items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalItems" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "additional item not permitted", 414s # "instanceLocation": "/3", 414s # "keywordLocation": "/additionalItems" 414s # }, 414s # { 414s # "error": "subschema is not valid against all additional items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalItems" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not boolean", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/additionalItems/type" 414s # }, 414s # { 414s # "error": "subschema is not valid against all additional items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalItems" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not boolean", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/additionalItems/type" 414s # }, 414s # { 414s # "error": "subschema is not valid against all additional items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalItems" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/additionalItems/type" 414s # }, 414s # { 414s # "error": "subschema is not valid against all additional items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalItems" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/additionalItems/type" 414s # }, 414s # { 414s # "error": "subschema is not valid against all additional items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalItems" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "additional item not permitted", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/additionalItems" 414s # }, 414s # { 414s # "error": "additional item not permitted", 414s # "instanceLocation": "/2", 414s # "keywordLocation": "/additionalItems" 414s # }, 414s # { 414s # "error": "subschema is not valid against all additional items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalItems" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "additional item not permitted", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/additionalItems" 414s # }, 414s # { 414s # "error": "subschema is not valid against all additional items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalItems" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s # 414s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "additional property not permitted", 414s # "instanceLocation": "/quux", 414s # "keywordLocation": "/additionalProperties" 414s # }, 414s # { 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalProperties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "additional property not permitted", 414s # "instanceLocation": "/quux", 414s # "keywordLocation": "/additionalProperties" 414s # }, 414s # { 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalProperties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "additional property not permitted", 414s # "instanceLocation": "/élmény", 414s # "keywordLocation": "/additionalProperties" 414s # }, 414s # { 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalProperties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "additional property not permitted", 414s # "instanceLocation": "/élmény", 414s # "keywordLocation": "/additionalProperties" 414s # }, 414s # { 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalProperties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got integer, not boolean", 414s # "instanceLocation": "/quux", 414s # "keywordLocation": "/additionalProperties/type" 414s # }, 414s # { 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalProperties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got integer, not boolean", 414s # "instanceLocation": "/quux", 414s # "keywordLocation": "/additionalProperties/type" 414s # }, 414s # { 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalProperties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got integer, not boolean", 414s # "instanceLocation": "/foo", 414s # "keywordLocation": "/additionalProperties/type" 414s # }, 414s # { 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalProperties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got integer, not boolean", 414s # "instanceLocation": "/foo", 414s # "keywordLocation": "/additionalProperties/type" 414s # }, 414s # { 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalProperties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got integer, not boolean", 414s # "instanceLocation": "/foo", 414s # "keywordLocation": "/additionalProperties/type" 414s # }, 414s # { 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalProperties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got integer, not boolean", 414s # "instanceLocation": "/foo", 414s # "keywordLocation": "/additionalProperties/type" 414s # }, 414s # { 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/additionalProperties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s # 414s ok 37 - allOf.json: "allOf" - "allOf" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 38 - allOf.json: "allOf" - "mismatch second" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: bar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/required" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: bar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/required" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 39 - allOf.json: "allOf" - "mismatch first" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/1/required" 414s # }, 414s # { 414s # "error": "subschema 1 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/1/required" 414s # }, 414s # { 414s # "error": "subschema 1 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 40 - allOf.json: "allOf" - "wrong type" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/bar", 414s # "keywordLocation": "/allOf/0/properties/bar/type" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/properties" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/bar", 414s # "keywordLocation": "/allOf/0/properties/bar/type" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/properties" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 41 - allOf.json: "allOf with base schema" - "valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 42 - allOf.json: "allOf with base schema" - "mismatch base schema" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: bar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/required" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: bar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/required" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 43 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/required" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/required" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 44 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: baz", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/1/required" 414s # }, 414s # { 414s # "error": "subschema 1 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: baz", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/1/required" 414s # }, 414s # { 414s # "error": "subschema 1 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 45 - allOf.json: "allOf with base schema" - "mismatch both" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/required" 414s # }, 414s # { 414s # "error": "object is missing property: baz", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/1/required" 414s # }, 414s # { 414s # "error": "subschemas 0, 1 are not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/required" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 46 - allOf.json: "allOf simple types" - "valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 47 - allOf.json: "allOf simple types" - "mismatch one" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value is greater than 30", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/maximum" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value is greater than 30", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/maximum" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 48 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 49 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/1" 414s # }, 414s # { 414s # "error": "subschema 1 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/1" 414s # }, 414s # { 414s # "error": "subschema 1 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 50 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0" 414s # }, 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/1" 414s # }, 414s # { 414s # "error": "subschemas 0, 1 are not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 51 - allOf.json: "allOf with one empty schema" - "any data is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 52 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 53 - allOf.json: "allOf with the first empty schema" - "number is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 54 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not number", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/1/type" 414s # }, 414s # { 414s # "error": "subschema 1 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not number", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/1/type" 414s # }, 414s # { 414s # "error": "subschema 1 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 55 - allOf.json: "allOf with the last empty schema" - "number is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 56 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not number", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/type" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not number", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/type" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 57 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 58 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got integer, not null", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/allOf/0/type" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/allOf" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got integer, not null", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/allOf/0/type" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/allOf" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # }, 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # }, 414s # { 414s # "error": "value is not a multiple of 5", 414s # "instanceLocation": "", 414s # "keywordLocation": "/oneOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/oneOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # }, 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # }, 414s # { 414s # "error": "value is not a multiple of 5", 414s # "instanceLocation": "", 414s # "keywordLocation": "/oneOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/oneOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 62 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "subschema 0 is not valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/allOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 63 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # }, 414s # { 414s # "error": "value is not a multiple of 5", 414s # "instanceLocation": "", 414s # "keywordLocation": "/oneOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/oneOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 5", 414s # "instanceLocation": "", 414s # "keywordLocation": "/oneOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/oneOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 5", 414s # "instanceLocation": "", 414s # "keywordLocation": "/oneOf/0/multipleOf" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/oneOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s # 414s ok 67 - anyOf.json: "anyOf" - "first anyOf valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 68 - anyOf.json: "anyOf" - "second anyOf valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 69 - anyOf.json: "anyOf" - "both anyOf valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 70 - anyOf.json: "anyOf" - "neither anyOf valid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got number, not integer", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/type" 414s # }, 414s # { 414s # "error": "value is less than 2", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/1/minimum" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got number, not integer", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/type" 414s # }, 414s # { 414s # "error": "value is less than 2", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/1/minimum" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 71 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got integer, not string", 414s # "instanceLocation": "", 414s # "keywordLocation": "/type" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got integer, not string", 414s # "instanceLocation": "", 414s # "keywordLocation": "/type" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 72 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 73 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "length is greater than 2", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/maxLength" 414s # }, 414s # { 414s # "error": "length is less than 4", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/1/minLength" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "length is greater than 2", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/maxLength" 414s # }, 414s # { 414s # "error": "length is less than 4", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/1/minLength" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 74 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 75 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 76 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0" 414s # }, 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/1" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0" 414s # }, 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/1" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 77 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 78 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 79 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 80 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/bar", 414s # "keywordLocation": "/anyOf/0/properties/bar/type" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/properties" 414s # }, 414s # { 414s # "error": "got integer, not string", 414s # "instanceLocation": "/foo", 414s # "keywordLocation": "/anyOf/1/properties/foo/type" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/1/properties" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/bar", 414s # "keywordLocation": "/anyOf/0/properties/bar/type" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/properties" 414s # }, 414s # { 414s # "error": "got integer, not string", 414s # "instanceLocation": "/foo", 414s # "keywordLocation": "/anyOf/1/properties/foo/type" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/1/properties" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 81 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 82 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 83 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 84 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got integer, not null", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/anyOf/0/type" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/anyOf" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got integer, not null", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/anyOf/0/type" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf/0/anyOf" 414s # }, 414s # { 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/anyOf" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s # 414s ok 85 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 86 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 87 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 88 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 89 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 90 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 91 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 92 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 93 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 94 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 95 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 96 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 97 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 98 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 99 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 100 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 101 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 102 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s # 414s ok 103 - const.json: "const validation" - "same value is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 104 - const.json: "const validation" - "another value is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 105 - const.json: "const validation" - "another type is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 106 - const.json: "const with object" - "same object is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 107 - const.json: "const with object" - "same object with different property order is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 108 - const.json: "const with object" - "another object is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 109 - const.json: "const with object" - "another type is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 110 - const.json: "const with array" - "same array is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 111 - const.json: "const with array" - "another array item is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/0': wrong type: integer vs object)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/0': wrong type: integer vs object)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 112 - const.json: "const with array" - "array with additional items is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 113 - const.json: "const with null" - "null is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 114 - const.json: "const with null" - "not null is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 115 - const.json: "const with false does not match 0" - "false is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 116 - const.json: "const with false does not match 0" - "integer zero is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 117 - const.json: "const with false does not match 0" - "float zero is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 118 - const.json: "const with true does not match 1" - "true is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 119 - const.json: "const with true does not match 1" - "integer one is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 120 - const.json: "const with true does not match 1" - "float one is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 121 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 122 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 123 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 124 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 125 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 126 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 127 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 128 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 129 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 130 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 131 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 132 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 133 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 134 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 135 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 136 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 137 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 138 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 139 - const.json: "const with 1 does not match true" - "true is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 140 - const.json: "const with 1 does not match true" - "integer one is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 141 - const.json: "const with 1 does not match true" - "float one is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 142 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 143 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 144 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 145 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 146 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 147 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 148 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 149 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 150 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 151 - const.json: "nul characters in strings" - "match string with nul" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 152 - const.json: "nul characters in strings" - "do not match string lacking nul" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "", 414s # "keywordLocation": "/const" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s # 414s ok 153 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 154 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 155 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 156 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value is less than 5", 414s # "instanceLocation": "/0", 414s # "keywordLocation": "/contains/minimum" 414s # }, 414s # { 414s # "error": "value is less than 5", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/contains/minimum" 414s # }, 414s # { 414s # "error": "value is less than 5", 414s # "instanceLocation": "/2", 414s # "keywordLocation": "/contains/minimum" 414s # }, 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value is less than 5", 414s # "instanceLocation": "/0", 414s # "keywordLocation": "/contains/minimum" 414s # }, 414s # { 414s # "error": "value is less than 5", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/contains/minimum" 414s # }, 414s # { 414s # "error": "value is less than 5", 414s # "instanceLocation": "/2", 414s # "keywordLocation": "/contains/minimum" 414s # }, 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 157 - contains.json: "contains keyword validation" - "empty array is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 158 - contains.json: "contains keyword validation" - "not array is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 159 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 160 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 161 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "/0", 414s # "keywordLocation": "/contains/const" 414s # }, 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/contains/const" 414s # }, 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "/2", 414s # "keywordLocation": "/contains/const" 414s # }, 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "/3", 414s # "keywordLocation": "/contains/const" 414s # }, 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "/0", 414s # "keywordLocation": "/contains/const" 414s # }, 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/contains/const" 414s # }, 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "/2", 414s # "keywordLocation": "/contains/const" 414s # }, 414s # { 414s # "error": "value does not match", 414s # "instanceLocation": "/3", 414s # "keywordLocation": "/contains/const" 414s # }, 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 162 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 163 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 164 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "/0", 414s # "keywordLocation": "/contains" 414s # }, 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "/0", 414s # "keywordLocation": "/contains" 414s # }, 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 165 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 166 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 167 - contains.json: "items + contains" - "matches items, does not match contains" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "/0", 414s # "keywordLocation": "/contains/multipleOf" 414s # }, 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/contains/multipleOf" 414s # }, 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "/2", 414s # "keywordLocation": "/contains/multipleOf" 414s # }, 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "/0", 414s # "keywordLocation": "/contains/multipleOf" 414s # }, 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/contains/multipleOf" 414s # }, 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "/2", 414s # "keywordLocation": "/contains/multipleOf" 414s # }, 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 168 - contains.json: "items + contains" - "does not match items, matches contains" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "/0", 414s # "keywordLocation": "/items/multipleOf" 414s # }, 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "/2", 414s # "keywordLocation": "/items/multipleOf" 414s # }, 414s # { 414s # "error": "subschema is not valid against all items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/items" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "/0", 414s # "keywordLocation": "/items/multipleOf" 414s # }, 414s # { 414s # "error": "subschema is not valid against all items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/items" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 169 - contains.json: "items + contains" - "matches both items and contains" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 170 - contains.json: "items + contains" - "matches neither items nor contains" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "/0", 414s # "keywordLocation": "/items/multipleOf" 414s # }, 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/items/multipleOf" 414s # }, 414s # { 414s # "error": "subschema is not valid against all items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/items" 414s # }, 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "/0", 414s # "keywordLocation": "/contains/multipleOf" 414s # }, 414s # { 414s # "error": "value is not a multiple of 3", 414s # "instanceLocation": "/1", 414s # "keywordLocation": "/contains/multipleOf" 414s # }, 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value is not a multiple of 2", 414s # "instanceLocation": "/0", 414s # "keywordLocation": "/items/multipleOf" 414s # }, 414s # { 414s # "error": "subschema is not valid against all items", 414s # "instanceLocation": "", 414s # "keywordLocation": "/items" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 171 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 172 - contains.json: "contains with false if subschema" - "empty array is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is not valid against any item", 414s # "instanceLocation": "", 414s # "keywordLocation": "/contains" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 173 - contains.json: "contains with null instance elements" - "allows null items" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s # 414s ok 174 - default.json: "invalid type for default" - "valid when property is specified" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 175 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 176 - default.json: "invalid string value for default" - "valid when property is specified" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 177 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s 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)" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s 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)" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "value is greater than 3", 414s # "instanceLocation": "/alpha", 414s # "keywordLocation": "/properties/alpha/maximum" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/properties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "value is greater than 3", 414s # "instanceLocation": "/alpha", 414s # "keywordLocation": "/properties/alpha/maximum" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/properties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s 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" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s # 414s ok 181 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 182 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 414s # result: { 414s # "errors": [ 414s # { 414s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/simpleTypes/enum", 414s # "error": "value does not match", 414s # "instanceLocation": "/definitions/foo/type", 414s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 414s # }, 414s # { 414s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf/1/type", 414s # "error": "got integer, not array", 414s # "instanceLocation": "/definitions/foo/type", 414s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 414s # }, 414s # { 414s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf", 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "/definitions/foo/type", 414s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 414s # }, 414s # { 414s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 414s # "error": "not all properties are valid", 414s # "instanceLocation": "/definitions/foo", 414s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 414s # }, 414s # { 414s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/definitions/additionalProperties", 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "/definitions", 414s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 414s # }, 414s # { 414s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/$ref/properties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/simpleTypes/enum", 414s # "error": "value does not match", 414s # "instanceLocation": "/definitions/foo/type", 414s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 414s # }, 414s # { 414s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf/1/type", 414s # "error": "got integer, not array", 414s # "instanceLocation": "/definitions/foo/type", 414s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 414s # }, 414s # { 414s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf", 414s # "error": "no subschemas are valid", 414s # "instanceLocation": "/definitions/foo/type", 414s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 414s # }, 414s # { 414s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 414s # "error": "not all properties are valid", 414s # "instanceLocation": "/definitions/foo", 414s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 414s # }, 414s # { 414s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/definitions/additionalProperties", 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "/definitions", 414s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 414s # }, 414s # { 414s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/$ref/properties" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s # 414s ok 183 - dependencies.json: "dependencies" - "neither" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 184 - dependencies.json: "dependencies" - "nondependant" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 185 - dependencies.json: "dependencies" - "with dependency" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 186 - dependencies.json: "dependencies" - "missing dependency" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/bar" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/bar" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 187 - dependencies.json: "dependencies" - "ignores arrays" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 188 - dependencies.json: "dependencies" - "ignores strings" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 189 - dependencies.json: "dependencies" - "ignores other non-objects" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 190 - dependencies.json: "dependencies with empty array" - "empty object" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 191 - dependencies.json: "dependencies with empty array" - "object with one property" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 192 - dependencies.json: "dependencies with empty array" - "non-object is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 193 - dependencies.json: "multiple dependencies" - "neither" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 194 - dependencies.json: "multiple dependencies" - "nondependants" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 195 - dependencies.json: "multiple dependencies" - "with dependencies" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 196 - dependencies.json: "multiple dependencies" - "missing dependency" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: bar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/quux" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: bar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/quux" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 197 - dependencies.json: "multiple dependencies" - "missing other dependency" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/quux" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/quux" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 198 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing properties: foo, bar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/quux" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing properties: foo, bar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/quux" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 199 - dependencies.json: "multiple dependencies subschema" - "valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 200 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 201 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/foo", 414s # "keywordLocation": "/dependencies/bar/properties/foo/type" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/bar/properties" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/foo", 414s # "keywordLocation": "/dependencies/bar/properties/foo/type" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/bar/properties" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 202 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/bar", 414s # "keywordLocation": "/dependencies/bar/properties/bar/type" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/bar/properties" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/bar", 414s # "keywordLocation": "/dependencies/bar/properties/bar/type" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/bar/properties" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 203 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/bar", 414s # "keywordLocation": "/dependencies/bar/properties/bar/type" 414s # }, 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/foo", 414s # "keywordLocation": "/dependencies/bar/properties/foo/type" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/bar/properties" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "got string, not integer", 414s # "instanceLocation": "/bar", 414s # "keywordLocation": "/dependencies/bar/properties/bar/type" 414s # }, 414s # { 414s # "error": "not all properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/bar/properties" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 204 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema true is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 205 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema false is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/bar" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/bar" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 206 - dependencies.json: "dependencies with boolean subschemas" - "object with both properties is invalid" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/bar" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "subschema is false", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/bar" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 207 - dependencies.json: "dependencies with boolean subschemas" - "empty object is valid" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 208 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 209 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 210 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 211 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo\rbar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/foo\nbar" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo\rbar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/foo\nbar" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 212 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object has fewer than 4 properties", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object has fewer than 4 properties", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 213 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo\"bar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/foo'bar/required" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo\"bar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/foo'bar/required" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 214 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo'bar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/foo\"bar" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "object is missing property: foo'bar", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/foo\"bar" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 215 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "additional property not permitted", 414s # "instanceLocation": "/foo", 414s # "keywordLocation": "/dependencies/foo/additionalProperties" 414s # }, 414s # { 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/foo/additionalProperties" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s # short-circuited result: { 414s # "errors": [ 414s # { 414s # "error": "additional property not permitted", 414s # "instanceLocation": "/foo", 414s # "keywordLocation": "/dependencies/foo/additionalProperties" 414s # }, 414s # { 414s # "error": "not all additional properties are valid", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies/foo/additionalProperties" 414s # }, 414s # { 414s # "error": "not all dependencies are satisfied", 414s # "instanceLocation": "", 414s # "keywordLocation": "/dependencies" 414s # } 414s # ], 414s # "valid": false 414s # } 414s ok 1 - test passes: data is valid: false 414s 1..1 414s } 414s ok 216 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 414s # result: { 414s # "valid": true 414s # } 414s # short-circuited result: { 414s # "valid": true 414s # } 414s ok 1 - test passes: data is valid: true 414s 1..1 414s } 414s ok 217 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 414s # result: { 414s # "errors": [ 414s # { 414s # "error": "additional property not permitted", 414s # "instanceLocation": "/foo", 414s # "keywordLocation": "/dependencies/foo/additionalProperties" 414s # }, 414s # { 415s # "error": "not all additional properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/dependencies/foo/additionalProperties" 415s # }, 415s # { 415s # "error": "not all dependencies are satisfied", 415s # "instanceLocation": "", 415s # "keywordLocation": "/dependencies" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "additional property not permitted", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/dependencies/foo/additionalProperties" 415s # }, 415s # { 415s # "error": "not all additional properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/dependencies/foo/additionalProperties" 415s # }, 415s # { 415s # "error": "not all dependencies are satisfied", 415s # "instanceLocation": "", 415s # "keywordLocation": "/dependencies" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 218 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s # 415s ok 219 - enum.json: "simple enum validation" - "one of the enum is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 220 - enum.json: "simple enum validation" - "something else is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 221 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 222 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 223 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 415s # result: { 415s # "errors": [ 415s # { 415s # "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)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "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)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 224 - enum.json: "heterogeneous enum validation" - "valid object matches" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 225 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 226 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 227 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 228 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 229 - enum.json: "enums in properties" - "both properties are valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 230 - enum.json: "enums in properties" - "wrong foo value" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/enum" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/enum" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 231 - enum.json: "enums in properties" - "wrong bar value" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/properties/bar/enum" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/properties/bar/enum" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 232 - enum.json: "enums in properties" - "missing optional property is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 233 - enum.json: "enums in properties" - "missing required property is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing property: bar", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing property: bar", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 234 - enum.json: "enums in properties" - "missing all properties is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing property: bar", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing property: bar", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 235 - enum.json: "enum with escaped characters" - "member 1 is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 236 - enum.json: "enum with escaped characters" - "member 2 is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 237 - enum.json: "enum with escaped characters" - "another string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 238 - enum.json: "enum with false does not match 0" - "false is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 239 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 240 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 241 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 242 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 243 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 244 - enum.json: "enum with true does not match 1" - "true is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 245 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 246 - enum.json: "enum with true does not match 1" - "float one is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 247 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 248 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 249 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 250 - enum.json: "enum with 0 does not match false" - "false is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 251 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 252 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 253 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 254 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 255 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 256 - enum.json: "enum with 1 does not match true" - "true is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 257 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 258 - enum.json: "enum with 1 does not match true" - "float one is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 259 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 260 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 261 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 262 - enum.json: "nul characters in strings" - "match string with nul" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 263 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 264 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 265 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is greater than or equal to 3", 415s # "instanceLocation": "", 415s # "keywordLocation": "/exclusiveMaximum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is greater than or equal to 3", 415s # "instanceLocation": "", 415s # "keywordLocation": "/exclusiveMaximum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 266 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is greater than or equal to 3", 415s # "instanceLocation": "", 415s # "keywordLocation": "/exclusiveMaximum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is greater than or equal to 3", 415s # "instanceLocation": "", 415s # "keywordLocation": "/exclusiveMaximum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 267 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s # 415s ok 268 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 269 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than or equal to 1.1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/exclusiveMinimum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than or equal to 1.1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/exclusiveMinimum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 270 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than or equal to 1.1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/exclusiveMinimum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than or equal to 1.1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/exclusiveMinimum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 271 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s # 415s ok 272 - format.json: "email format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 273 - format.json: "email format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 274 - format.json: "email format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 275 - format.json: "email format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 276 - format.json: "email format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 277 - format.json: "email format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 278 - format.json: "idn-email format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 279 - format.json: "idn-email format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 280 - format.json: "idn-email format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 281 - format.json: "idn-email format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 282 - format.json: "idn-email format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 283 - format.json: "idn-email format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 284 - format.json: "regex format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 285 - format.json: "regex format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 286 - format.json: "regex format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 287 - format.json: "regex format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 288 - format.json: "regex format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 289 - format.json: "regex format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 290 - format.json: "ipv4 format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 291 - format.json: "ipv4 format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 292 - format.json: "ipv4 format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 293 - format.json: "ipv4 format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 294 - format.json: "ipv4 format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 295 - format.json: "ipv4 format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 296 - format.json: "ipv6 format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 297 - format.json: "ipv6 format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 298 - format.json: "ipv6 format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 299 - format.json: "ipv6 format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 300 - format.json: "ipv6 format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 301 - format.json: "ipv6 format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 302 - format.json: "idn-hostname format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 303 - format.json: "idn-hostname format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 304 - format.json: "idn-hostname format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 305 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 306 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 307 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 308 - format.json: "hostname format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 309 - format.json: "hostname format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 310 - format.json: "hostname format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 311 - format.json: "hostname format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 312 - format.json: "hostname format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 313 - format.json: "hostname format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 314 - format.json: "date format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 315 - format.json: "date format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 316 - format.json: "date format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 317 - format.json: "date format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 318 - format.json: "date format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 319 - format.json: "date format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 320 - format.json: "date-time format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 321 - format.json: "date-time format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 322 - format.json: "date-time format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 323 - format.json: "date-time format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 324 - format.json: "date-time format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 325 - format.json: "date-time format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 326 - format.json: "time format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 327 - format.json: "time format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 328 - format.json: "time format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 329 - format.json: "time format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 330 - format.json: "time format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 331 - format.json: "time format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 332 - format.json: "json-pointer format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 333 - format.json: "json-pointer format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 334 - format.json: "json-pointer format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 335 - format.json: "json-pointer format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 336 - format.json: "json-pointer format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 337 - format.json: "json-pointer format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 338 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 339 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 340 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 341 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 342 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 343 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 344 - format.json: "iri format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 345 - format.json: "iri format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 346 - format.json: "iri format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 347 - format.json: "iri format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 348 - format.json: "iri format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 349 - format.json: "iri format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 350 - format.json: "iri-reference format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 351 - format.json: "iri-reference format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 352 - format.json: "iri-reference format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 353 - format.json: "iri-reference format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 354 - format.json: "iri-reference format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 355 - format.json: "iri-reference format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 356 - format.json: "uri format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 357 - format.json: "uri format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 358 - format.json: "uri format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 359 - format.json: "uri format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 360 - format.json: "uri format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 361 - format.json: "uri format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 362 - format.json: "uri-reference format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 363 - format.json: "uri-reference format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 364 - format.json: "uri-reference format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 365 - format.json: "uri-reference format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 366 - format.json: "uri-reference format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 367 - format.json: "uri-reference format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 368 - format.json: "uri-template format" - "all string formats ignore integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 369 - format.json: "uri-template format" - "all string formats ignore floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 370 - format.json: "uri-template format" - "all string formats ignore objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 371 - format.json: "uri-template format" - "all string formats ignore arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 372 - format.json: "uri-template format" - "all string formats ignore booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 373 - format.json: "uri-template format" - "all string formats ignore nulls" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s # 415s ok 374 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 375 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 376 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 377 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 378 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 379 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 380 - if-then-else.json: "if and then without else" - "valid through then" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 381 - if-then-else.json: "if and then without else" - "invalid through then" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than -10", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then/minimum" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than -10", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then/minimum" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 382 - if-then-else.json: "if and then without else" - "valid when if test fails" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 383 - if-then-else.json: "if and else without then" - "valid when if test passes" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 384 - if-then-else.json: "if and else without then" - "valid through else" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 385 - if-then-else.json: "if and else without then" - "invalid through else" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is not a multiple of 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else/multipleOf" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is not a multiple of 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else/multipleOf" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 386 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 387 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than -10", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then/minimum" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than -10", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then/minimum" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 388 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 389 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is not a multiple of 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else/multipleOf" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is not a multiple of 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else/multipleOf" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 390 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 391 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 392 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 393 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then/const" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then/const" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 394 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else/const" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else/const" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 395 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 396 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 397 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 398 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then/const" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then/const" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/then" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 399 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else/const" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else/const" 415s # }, 415s # { 415s # "error": "subschema is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/else" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s 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" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s 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" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/int/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "#/definitions/int/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 415s # }, 415s # { 415s # "error": "not all additional properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/1/additionalProperties" 415s # }, 415s # { 415s # "error": "subschemas 0, 1 are not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/int/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/properties" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 402 - items.json: "a schema given for items" - "valid items" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 403 - items.json: "a schema given for items" - "wrong type of items" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/1", 415s # "keywordLocation": "/items/type" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/1", 415s # "keywordLocation": "/items/type" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 404 - items.json: "a schema given for items" - "ignores non-arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 405 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 406 - items.json: "an array of schemas for items" - "correct types" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 407 - items.json: "an array of schemas for items" - "wrong types" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/0/type" 415s # }, 415s # { 415s # "error": "got integer, not string", 415s # "instanceLocation": "/1", 415s # "keywordLocation": "/items/1/type" 415s # }, 415s # { 415s # "error": "not all items are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/0/type" 415s # }, 415s # { 415s # "error": "not all items are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 408 - items.json: "an array of schemas for items" - "incomplete array of items" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 409 - items.json: "an array of schemas for items" - "array with additional items" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 410 - items.json: "an array of schemas for items" - "empty array" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 411 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 412 - items.json: "items with boolean schema (true)" - "any array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 413 - items.json: "items with boolean schema (true)" - "empty array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 414 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "item not permitted", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items" 415s # }, 415s # { 415s # "error": "item not permitted", 415s # "instanceLocation": "/1", 415s # "keywordLocation": "/items" 415s # }, 415s # { 415s # "error": "item not permitted", 415s # "instanceLocation": "/2", 415s # "keywordLocation": "/items" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "item not permitted", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 415 - items.json: "items with boolean schema (false)" - "empty array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 416 - items.json: "items with boolean schemas" - "array with one item is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 417 - items.json: "items with boolean schemas" - "array with two items is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "item not permitted", 415s # "instanceLocation": "/1", 415s # "keywordLocation": "/items/1" 415s # }, 415s # { 415s # "error": "not all items are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "item not permitted", 415s # "instanceLocation": "/1", 415s # "keywordLocation": "/items/1" 415s # }, 415s # { 415s # "error": "not all items are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 418 - items.json: "items with boolean schemas" - "empty array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 419 - items.json: "items and subitems" - "valid items" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 420 - items.json: "items and subitems" - "too many items" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "additional item not permitted", 415s # "instanceLocation": "/3", 415s # "keywordLocation": "/additionalItems" 415s # }, 415s # { 415s # "error": "subschema is not valid against all additional items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/additionalItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "additional item not permitted", 415s # "instanceLocation": "/3", 415s # "keywordLocation": "/additionalItems" 415s # }, 415s # { 415s # "error": "subschema is not valid against all additional items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/additionalItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 421 - items.json: "items and subitems" - "too many sub-items" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 415s # "error": "additional item not permitted", 415s # "instanceLocation": "/0/2", 415s # "keywordLocation": "/items/0/$ref/additionalItems" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 415s # "error": "subschema is not valid against all additional items", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/0/$ref/additionalItems" 415s # }, 415s # { 415s # "error": "not all items are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 415s # "error": "additional item not permitted", 415s # "instanceLocation": "/0/2", 415s # "keywordLocation": "/items/0/$ref/additionalItems" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 415s # "error": "subschema is not valid against all additional items", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/0/$ref/additionalItems" 415s # }, 415s # { 415s # "error": "not all items are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 422 - items.json: "items and subitems" - "wrong item" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/item/type", 415s # "error": "got object, not array", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/0/$ref/type" 415s # }, 415s # { 415s # "error": "not all items are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/item/type", 415s # "error": "got object, not array", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/0/$ref/type" 415s # }, 415s # { 415s # "error": "not all items are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 423 - items.json: "items and subitems" - "wrong sub-item" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 415s # "error": "object is missing property: foo", 415s # "instanceLocation": "/0/0", 415s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "#/definitions/item/items", 415s # "error": "not all items are valid", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/0/$ref/items" 415s # }, 415s # { 415s # "error": "not all items are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 415s # "error": "object is missing property: foo", 415s # "instanceLocation": "/0/0", 415s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "#/definitions/item/items", 415s # "error": "not all items are valid", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/0/$ref/items" 415s # }, 415s # { 415s # "error": "not all items are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 424 - items.json: "items and subitems" - "fewer items is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 425 - items.json: "nested items" - "valid nested array" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 426 - items.json: "nested items" - "nested array with invalid type" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "/0/0/0/0", 415s # "keywordLocation": "/items/items/items/items/type" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0/0/0", 415s # "keywordLocation": "/items/items/items/items" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0/0", 415s # "keywordLocation": "/items/items/items" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/items" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "/0/0/0/0", 415s # "keywordLocation": "/items/items/items/items/type" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0/0/0", 415s # "keywordLocation": "/items/items/items/items" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0/0", 415s # "keywordLocation": "/items/items/items" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/items" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 427 - items.json: "nested items" - "not deep enough" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not array", 415s # "instanceLocation": "/0/0/0", 415s # "keywordLocation": "/items/items/items/type" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0/0", 415s # "keywordLocation": "/items/items/items" 415s # }, 415s # { 415s # "error": "got integer, not array", 415s # "instanceLocation": "/0/1/0", 415s # "keywordLocation": "/items/items/items/type" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0/1", 415s # "keywordLocation": "/items/items/items" 415s # }, 415s # { 415s # "error": "got integer, not array", 415s # "instanceLocation": "/0/2/0", 415s # "keywordLocation": "/items/items/items/type" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0/2", 415s # "keywordLocation": "/items/items/items" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/items" 415s # }, 415s # { 415s # "error": "got integer, not array", 415s # "instanceLocation": "/1/0/0", 415s # "keywordLocation": "/items/items/items/type" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/1/0", 415s # "keywordLocation": "/items/items/items" 415s # }, 415s # { 415s # "error": "got integer, not array", 415s # "instanceLocation": "/1/1/0", 415s # "keywordLocation": "/items/items/items/type" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/1/1", 415s # "keywordLocation": "/items/items/items" 415s # }, 415s # { 415s # "error": "got integer, not array", 415s # "instanceLocation": "/1/2/0", 415s # "keywordLocation": "/items/items/items/type" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/1/2", 415s # "keywordLocation": "/items/items/items" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/1", 415s # "keywordLocation": "/items/items" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not array", 415s # "instanceLocation": "/0/0/0", 415s # "keywordLocation": "/items/items/items/type" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0/0", 415s # "keywordLocation": "/items/items/items" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/items" 415s # }, 415s # { 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 428 - items.json: "single-form items with null instance elements" - "allows null elements" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 429 - items.json: "array-form items with null instance elements" - "allows null elements" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s # 415s ok 430 - maxItems.json: "maxItems validation" - "shorter is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 431 - maxItems.json: "maxItems validation" - "exact length is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 432 - maxItems.json: "maxItems validation" - "too long is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "array has more than 2 items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "array has more than 2 items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 433 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 434 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 435 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "array has more than 2 items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "array has more than 2 items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 436 - maxLength.json: "maxLength validation" - "shorter is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 437 - maxLength.json: "maxLength validation" - "exact length is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 438 - maxLength.json: "maxLength validation" - "too long is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "length is greater than 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxLength" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "length is greater than 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxLength" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 439 - maxLength.json: "maxLength validation" - "ignores non-strings" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 440 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 441 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 442 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "length is greater than 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxLength" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "length is greater than 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxLength" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 443 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 444 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 445 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object has more than 2 properties", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object has more than 2 properties", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 446 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 447 - maxProperties.json: "maxProperties validation" - "ignores strings" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 448 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 449 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 450 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object has more than 2 properties", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object has more than 2 properties", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 451 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 452 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object has more than 0 property", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object has more than 0 property", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maxProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 453 - maximum.json: "maximum validation" - "below the maximum is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 454 - maximum.json: "maximum validation" - "boundary point is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 455 - maximum.json: "maximum validation" - "above the maximum is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is greater than 3", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maximum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is greater than 3", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maximum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 456 - maximum.json: "maximum validation" - "ignores non-numbers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 457 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 458 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 459 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 460 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is greater than 300", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maximum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is greater than 300", 415s # "instanceLocation": "", 415s # "keywordLocation": "/maximum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 461 - minItems.json: "minItems validation" - "longer is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 462 - minItems.json: "minItems validation" - "exact length is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 463 - minItems.json: "minItems validation" - "too short is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "array has fewer than 1 item", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "array has fewer than 1 item", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 464 - minItems.json: "minItems validation" - "ignores non-arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 465 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 466 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "array has fewer than 1 item", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "array has fewer than 1 item", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 467 - minLength.json: "minLength validation" - "longer is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 468 - minLength.json: "minLength validation" - "exact length is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 469 - minLength.json: "minLength validation" - "too short is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "length is less than 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minLength" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "length is less than 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minLength" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 470 - minLength.json: "minLength validation" - "ignores non-strings" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 471 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "length is less than 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minLength" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "length is less than 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minLength" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 472 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 473 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "length is less than 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minLength" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "length is less than 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minLength" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 474 - minProperties.json: "minProperties validation" - "longer is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 475 - minProperties.json: "minProperties validation" - "exact length is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 476 - minProperties.json: "minProperties validation" - "too short is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object has fewer than 1 property", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object has fewer than 1 property", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 477 - minProperties.json: "minProperties validation" - "ignores arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 478 - minProperties.json: "minProperties validation" - "ignores strings" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 479 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 480 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 481 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object has fewer than 1 property", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object has fewer than 1 property", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 482 - minimum.json: "minimum validation" - "above the minimum is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 483 - minimum.json: "minimum validation" - "boundary point is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 484 - minimum.json: "minimum validation" - "below the minimum is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than 1.1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minimum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than 1.1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minimum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 485 - minimum.json: "minimum validation" - "ignores non-numbers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 486 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 487 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 488 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 489 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 490 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than -2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minimum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than -2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minimum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 491 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than -2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minimum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is less than -2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/minimum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 492 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s # 415s ok 493 - multipleOf.json: "by int" - "int by int" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 494 - multipleOf.json: "by int" - "int by int fail" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is not a multiple of 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/multipleOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is not a multiple of 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/multipleOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 495 - multipleOf.json: "by int" - "ignores non-numbers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 496 - multipleOf.json: "by number" - "zero is multiple of anything" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 497 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 498 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is not a multiple of 1.5", 415s # "instanceLocation": "", 415s # "keywordLocation": "/multipleOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is not a multiple of 1.5", 415s # "instanceLocation": "", 415s # "keywordLocation": "/multipleOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 499 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 500 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is not a multiple of 0.0001", 415s # "instanceLocation": "", 415s # "keywordLocation": "/multipleOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is not a multiple of 0.0001", 415s # "instanceLocation": "", 415s # "keywordLocation": "/multipleOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 501 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is not a multiple of 0.123456789", 415s # "instanceLocation": "", 415s # "keywordLocation": "/multipleOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is not a multiple of 0.123456789", 415s # "instanceLocation": "", 415s # "keywordLocation": "/multipleOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 502 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s # 415s ok 503 - not.json: "not" - "allowed" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 504 - not.json: "not" - "disallowed" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 505 - not.json: "not multiple types" - "valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 506 - not.json: "not multiple types" - "mismatch" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 507 - not.json: "not multiple types" - "other mismatch" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 508 - not.json: "not more complex schema" - "match" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 509 - not.json: "not more complex schema" - "other match" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 510 - not.json: "not more complex schema" - "mismatch" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 511 - not.json: "forbidden property" - "property present" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/not" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/not" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 512 - not.json: "forbidden property" - "property absent" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 513 - not.json: "forbid everything with empty schema" - "number is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 514 - not.json: "forbid everything with empty schema" - "string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 515 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 516 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 517 - not.json: "forbid everything with empty schema" - "null is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 518 - not.json: "forbid everything with empty schema" - "object is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 519 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 520 - not.json: "forbid everything with empty schema" - "array is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 521 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 522 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 523 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 524 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 525 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 526 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 527 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 528 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 529 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 530 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is true", 415s # "instanceLocation": "", 415s # "keywordLocation": "/not" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 531 - not.json: "allow everything with boolean schema false" - "number is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 532 - not.json: "allow everything with boolean schema false" - "string is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 533 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 534 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 535 - not.json: "allow everything with boolean schema false" - "null is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 536 - not.json: "allow everything with boolean schema false" - "object is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 537 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 538 - not.json: "allow everything with boolean schema false" - "array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 539 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 540 - not.json: "double negation" - "any value is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s # 415s ok 541 - oneOf.json: "oneOf" - "first oneOf valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 542 - oneOf.json: "oneOf" - "second oneOf valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 543 - oneOf.json: "oneOf" - "both oneOf valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 544 - oneOf.json: "oneOf" - "neither oneOf valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0/type" 415s # }, 415s # { 415s # "error": "value is less than 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/1/minimum" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0/type" 415s # }, 415s # { 415s # "error": "value is less than 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/1/minimum" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 545 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # }, 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 546 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 547 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 548 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1, 2", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 549 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 550 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 551 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is false", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0" 415s # }, 415s # { 415s # "error": "subschema is false", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/1" 415s # }, 415s # { 415s # "error": "subschema is false", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/2" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is false", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0" 415s # }, 415s # { 415s # "error": "subschema is false", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/1" 415s # }, 415s # { 415s # "error": "subschema is false", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/2" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 552 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 553 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 554 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 555 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/oneOf/0/properties/bar/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0/properties" 415s # }, 415s # { 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/oneOf/1/properties/foo/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/1/properties" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/oneOf/0/properties/bar/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0/properties" 415s # }, 415s # { 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/oneOf/1/properties/foo/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/1/properties" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 556 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 557 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 558 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing property: foo", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0/required" 415s # }, 415s # { 415s # "error": "object is missing properties: foo, baz", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/1/required" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing property: foo", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0/required" 415s # }, 415s # { 415s # "error": "object is missing properties: foo, baz", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/1/required" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 559 - oneOf.json: "oneOf with required" - "first valid - valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 560 - oneOf.json: "oneOf with required" - "second valid - valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 561 - oneOf.json: "oneOf with required" - "both valid - invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 562 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 563 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 564 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "multiple subschemas are valid: 0, 1", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 565 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing property: bar", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0/required" 415s # }, 415s # { 415s # "error": "object is missing property: foo", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/1/required" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing property: bar", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0/required" 415s # }, 415s # { 415s # "error": "object is missing property: foo", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/1/required" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 566 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 567 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0/oneOf/0/type" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0/oneOf" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0/oneOf/0/type" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf/0/oneOf" 415s # }, 415s # { 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/oneOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 568 - pattern.json: "pattern validation" - "a matching pattern is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 569 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "pattern does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/pattern" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "pattern does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/pattern" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 570 - pattern.json: "pattern validation" - "ignores booleans" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 571 - pattern.json: "pattern validation" - "ignores integers" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 572 - pattern.json: "pattern validation" - "ignores floats" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 573 - pattern.json: "pattern validation" - "ignores objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 574 - pattern.json: "pattern validation" - "ignores arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 575 - pattern.json: "pattern validation" - "ignores null" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 576 - pattern.json: "pattern is not anchored" - "matches a substring" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s # 415s ok 577 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 578 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 579 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/patternProperties/f.*o/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/patternProperties/f.*o/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 580 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/patternProperties/f.*o/type" 415s # }, 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/foooooo", 415s # "keywordLocation": "/patternProperties/f.*o/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/patternProperties/f.*o/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 581 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 582 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 583 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 584 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 585 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 586 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 587 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/a", 415s # "keywordLocation": "/patternProperties/a*/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/a", 415s # "keywordLocation": "/patternProperties/a*/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 588 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value is greater than 20", 415s # "instanceLocation": "/aaaa", 415s # "keywordLocation": "/patternProperties/aaa*/maximum" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value is greater than 20", 415s # "instanceLocation": "/aaaa", 415s # "keywordLocation": "/patternProperties/aaa*/maximum" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 589 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/aaa", 415s # "keywordLocation": "/patternProperties/a*/type" 415s # }, 415s # { 415s # "error": "value is greater than 20", 415s # "instanceLocation": "/aaaa", 415s # "keywordLocation": "/patternProperties/aaa*/maximum" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/aaa", 415s # "keywordLocation": "/patternProperties/a*/type" 415s # }, 415s # { 415s # "error": "value is greater than 20", 415s # "instanceLocation": "/aaaa", 415s # "keywordLocation": "/patternProperties/aaa*/maximum" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 590 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 591 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not boolean", 415s # "instanceLocation": "/a31b", 415s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not boolean", 415s # "instanceLocation": "/a31b", 415s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 592 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 593 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not string", 415s # "instanceLocation": "/a_X_3", 415s # "keywordLocation": "/patternProperties/X_/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not string", 415s # "instanceLocation": "/a_X_3", 415s # "keywordLocation": "/patternProperties/X_/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 594 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 595 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "property not permitted", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/patternProperties/b.*" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "property not permitted", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/patternProperties/b.*" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 596 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "property not permitted", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/patternProperties/b.*" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "property not permitted", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/patternProperties/b.*" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 597 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "property not permitted", 415s # "instanceLocation": "/foobar", 415s # "keywordLocation": "/patternProperties/b.*" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "property not permitted", 415s # "instanceLocation": "/foobar", 415s # "keywordLocation": "/patternProperties/b.*" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 598 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 599 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s # 415s ok 600 - properties.json: "object properties validation" - "both properties present and valid is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 601 - properties.json: "object properties validation" - "one property invalid is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not string", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/properties/bar/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not string", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/properties/bar/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 602 - properties.json: "object properties validation" - "both properties invalid is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not string", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/properties/bar/type" 415s # }, 415s # { 415s # "error": "got array, not integer", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not string", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/properties/bar/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 603 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 604 - properties.json: "object properties validation" - "ignores arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 605 - properties.json: "object properties validation" - "ignores other non-objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 606 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 607 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "array has more than 3 items", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/maxItems" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "array has more than 3 items", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/maxItems" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 608 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "array has fewer than 2 items", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/patternProperties/f.o/minItems" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "array has fewer than 2 items", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/patternProperties/f.o/minItems" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 609 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 610 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "array has fewer than 2 items", 415s # "instanceLocation": "/fxo", 415s # "keywordLocation": "/patternProperties/f.o/minItems" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "array has fewer than 2 items", 415s # "instanceLocation": "/fxo", 415s # "keywordLocation": "/patternProperties/f.o/minItems" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/patternProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 611 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 612 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 613 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/quux", 415s # "keywordLocation": "/additionalProperties/type" 415s # }, 415s # { 415s # "error": "not all additional properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/additionalProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "/quux", 415s # "keywordLocation": "/additionalProperties/type" 415s # }, 415s # { 415s # "error": "not all additional properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/additionalProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 614 - properties.json: "properties with boolean schema" - "no property present is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 615 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 616 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "property not permitted", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/properties/bar" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "property not permitted", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/properties/bar" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 617 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "property not permitted", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/properties/bar" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "property not permitted", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/properties/bar" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 618 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 619 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "/foo\tbar", 415s # "keywordLocation": "/properties/foo\tbar/type" 415s # }, 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "/foo\nbar", 415s # "keywordLocation": "/properties/foo\nbar/type" 415s # }, 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "/foo\fbar", 415s # "keywordLocation": "/properties/foo\fbar/type" 415s # }, 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "/foo\rbar", 415s # "keywordLocation": "/properties/foo\rbar/type" 415s # }, 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "/foo\"bar", 415s # "keywordLocation": "/properties/foo\"bar/type" 415s # }, 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "/foo\\bar", 415s # "keywordLocation": "/properties/foo\\bar/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "/foo\tbar", 415s # "keywordLocation": "/properties/foo\tbar/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 620 - properties.json: "properties with null valued instance properties" - "allows null values" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 621 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 622 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 623 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 624 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "/__proto__", 415s # "keywordLocation": "/properties/__proto__/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "/__proto__", 415s # "keywordLocation": "/properties/__proto__/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 625 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not string", 415s # "instanceLocation": "/toString/length", 415s # "keywordLocation": "/properties/toString/properties/length/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/toString", 415s # "keywordLocation": "/properties/toString/properties" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not string", 415s # "instanceLocation": "/toString/length", 415s # "keywordLocation": "/properties/toString/properties/length/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/toString", 415s # "keywordLocation": "/properties/toString/properties" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 626 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not number", 415s # "instanceLocation": "/constructor", 415s # "keywordLocation": "/properties/constructor/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not number", 415s # "instanceLocation": "/constructor", 415s # "keywordLocation": "/properties/constructor/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 627 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s # 415s ok 628 - propertyNames.json: "propertyNames validation" - "all property names valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 629 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "length is greater than 3", 415s # "instanceLocation": "/foobar", 415s # "keywordLocation": "/propertyNames/maxLength" 415s # }, 415s # { 415s # "error": "not all property names are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/propertyNames" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "length is greater than 3", 415s # "instanceLocation": "/foobar", 415s # "keywordLocation": "/propertyNames/maxLength" 415s # }, 415s # { 415s # "error": "not all property names are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/propertyNames" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 630 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 631 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 632 - propertyNames.json: "propertyNames validation" - "ignores strings" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 633 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 634 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 635 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "pattern does not match", 415s # "instanceLocation": "/aaA", 415s # "keywordLocation": "/propertyNames/pattern" 415s # }, 415s # { 415s # "error": "not all property names are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/propertyNames" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "pattern does not match", 415s # "instanceLocation": "/aaA", 415s # "keywordLocation": "/propertyNames/pattern" 415s # }, 415s # { 415s # "error": "not all property names are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/propertyNames" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 636 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 637 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 638 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 639 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is false", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/propertyNames" 415s # }, 415s # { 415s # "error": "not all property names are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/propertyNames" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "subschema is false", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/propertyNames" 415s # }, 415s # { 415s # "error": "not all property names are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/propertyNames" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 640 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 641 - propertyNames.json: "propertyNames with const" - "object with property foo is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 642 - propertyNames.json: "propertyNames with const" - "object with any other property is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/propertyNames/const" 415s # }, 415s # { 415s # "error": "not all property names are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/propertyNames" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/propertyNames/const" 415s # }, 415s # { 415s # "error": "not all property names are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/propertyNames" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 643 - propertyNames.json: "propertyNames with const" - "empty object is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 644 - propertyNames.json: "propertyNames with enum" - "object with property foo is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 645 - propertyNames.json: "propertyNames with enum" - "object with property foo and bar is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 646 - propertyNames.json: "propertyNames with enum" - "object with any other property is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "/baz", 415s # "keywordLocation": "/propertyNames/enum" 415s # }, 415s # { 415s # "error": "not all property names are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/propertyNames" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "/baz", 415s # "keywordLocation": "/propertyNames/enum" 415s # }, 415s # { 415s # "error": "not all property names are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/propertyNames" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 647 - propertyNames.json: "propertyNames with enum" - "empty object is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s # 415s ok 648 - ref.json: "root pointer ref" - "match" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 649 - ref.json: "root pointer ref" - "recursive match" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 650 - ref.json: "root pointer ref" - "mismatch" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "additional property not permitted", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/additionalProperties" 415s # }, 415s # { 415s # "error": "not all additional properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/additionalProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "additional property not permitted", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/additionalProperties" 415s # }, 415s # { 415s # "error": "not all additional properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/additionalProperties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 651 - ref.json: "root pointer ref" - "recursive mismatch" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/additionalProperties", 415s # "error": "additional property not permitted", 415s # "instanceLocation": "/foo/bar", 415s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "#/additionalProperties", 415s # "error": "not all additional properties are valid", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/additionalProperties", 415s # "error": "additional property not permitted", 415s # "instanceLocation": "/foo/bar", 415s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "#/additionalProperties", 415s # "error": "not all additional properties are valid", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 652 - ref.json: "relative pointer ref to object" - "match" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 653 - ref.json: "relative pointer ref to object" - "mismatch" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/properties/foo/type", 415s # "error": "got boolean, not integer", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/properties/bar/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/properties/foo/type", 415s # "error": "got boolean, not integer", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/properties/bar/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 654 - ref.json: "relative pointer ref to array" - "match array" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 655 - ref.json: "relative pointer ref to array" - "mismatch array" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/items/0/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/1", 415s # "keywordLocation": "/items/1/$ref/type" 415s # }, 415s # { 415s # "error": "not all items are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/items/0/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/1", 415s # "keywordLocation": "/items/1/$ref/type" 415s # }, 415s # { 415s # "error": "not all items are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 656 - ref.json: "escaped pointer ref" - "slash invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/slash", 415s # "keywordLocation": "/properties/slash/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/slash", 415s # "keywordLocation": "/properties/slash/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 657 - ref.json: "escaped pointer ref" - "tilde invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/tilde", 415s # "keywordLocation": "/properties/tilde/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/tilde", 415s # "keywordLocation": "/properties/tilde/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 658 - ref.json: "escaped pointer ref" - "percent invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/percent", 415s # "keywordLocation": "/properties/percent/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/percent", 415s # "keywordLocation": "/properties/percent/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 659 - ref.json: "escaped pointer ref" - "slash valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 660 - ref.json: "escaped pointer ref" - "tilde valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 661 - ref.json: "escaped pointer ref" - "percent valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 662 - ref.json: "nested refs" - "nested ref valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 663 - ref.json: "nested refs" - "nested ref invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/a/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/a/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 664 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 665 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 666 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/reffed/type", 415s # "error": "got string, not array", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/reffed/type", 415s # "error": "got string, not array", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 667 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 668 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 669 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 670 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeInteger/minimum", 415s # "error": "value is less than 0", 415s # "instanceLocation": "/minLength", 415s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeIntegerDefault0/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "/minLength", 415s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/$ref/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeInteger/minimum", 415s # "error": "value is less than 0", 415s # "instanceLocation": "/minLength", 415s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeIntegerDefault0/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "/minLength", 415s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/$ref/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 671 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 672 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not string", 415s # "instanceLocation": "/$ref", 415s # "keywordLocation": "/properties/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not string", 415s # "instanceLocation": "/$ref", 415s # "keywordLocation": "/properties/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 673 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 674 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/is-string/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/$ref", 415s # "keywordLocation": "/properties/$ref/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/is-string/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/$ref", 415s # "keywordLocation": "/properties/$ref/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 675 - ref.json: "$ref to boolean schema true" - "any value is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 676 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/bool", 415s # "error": "subschema is false", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/bool", 415s # "error": "subschema is false", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 677 - ref.json: "Recursive references between schemas" - "valid tree" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 678 - ref.json: "Recursive references between schemas" - "invalid tree" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 415s # "error": "got string, not number", 415s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 415s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/nodes/0/subtree/nodes/0", 415s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/nodes/0/subtree/nodes", 415s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/nodes/0/subtree", 415s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/nodes/0", 415s # "keywordLocation": "/properties/nodes/items/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/nodes", 415s # "keywordLocation": "/properties/nodes/items" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 415s # "error": "got string, not number", 415s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 415s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/nodes/0/subtree/nodes/0", 415s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/nodes/0/subtree/nodes", 415s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/nodes/0/subtree", 415s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/nodes/0", 415s # "keywordLocation": "/properties/nodes/items/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/nodes", 415s # "keywordLocation": "/properties/nodes/items" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 679 - ref.json: "refs with quote" - "object with numbers is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 680 - ref.json: "refs with quote" - "object with strings is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 415s # "error": "got string, not number", 415s # "instanceLocation": "/foo\"bar", 415s # "keywordLocation": "/properties/foo\"bar/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 415s # "error": "got string, not number", 415s # "instanceLocation": "/foo\"bar", 415s # "keywordLocation": "/properties/foo\"bar/$ref/type" 415s # }, 415s # { 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 681 - ref.json: "Location-independent identifier" - "match" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 682 - ref.json: "Location-independent identifier" - "mismatch" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/A/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions/A/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 683 - ref.json: "Reference an anchor with a non-relative URI" - "match" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 684 - ref.json: "Reference an anchor with a non-relative URI" - "mismatch" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 685 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 686 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s 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" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s 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" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "value does not match", 415s # "instanceLocation": "", 415s # "keywordLocation": "/enum" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 689 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 690 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo/bar", 415s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/allOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo/bar", 415s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/allOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 691 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/allOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/allOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 692 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 693 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo/bar", 415s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/allOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo/bar", 415s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/allOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 694 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/allOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/allOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 695 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 696 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 697 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 698 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 699 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 415s # "error": "value is less than 30", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/minimum" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 415s # "error": "value is less than 30", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/minimum" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 700 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 701 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 702 - ref.json: "URN base URI with NSS" - "a string is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 703 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 704 - ref.json: "URN base URI with r-component" - "a string is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 705 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 706 - ref.json: "URN base URI with q-component" - "a string is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 707 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 708 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 709 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 710 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 711 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/foo", 415s # "keywordLocation": "/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 712 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 713 - ref.json: "ref to if" - "an integer is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 714 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 715 - ref.json: "ref to then" - "an integer is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 716 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 717 - ref.json: "ref to else" - "an integer is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 718 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 719 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 720 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 721 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 722 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 723 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 724 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 725 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions//definitions//type", 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "#/definitions//definitions//type", 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/type" 415s # }, 415s # { 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 726 - refRemote.json: "remote ref" - "remote ref valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 727 - refRemote.json: "remote ref" - "remote ref invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/$ref/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/$ref/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 728 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 729 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/$ref/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/$ref/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 730 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 731 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/$ref/$ref/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/subSchemas.json#/definitions/integer/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/$ref/$ref/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 732 - refRemote.json: "base URI change" - "base URI change ref valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 733 - refRemote.json: "base URI change" - "base URI change ref invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/0/0", 415s # "keywordLocation": "/items/items/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/items" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/folderInteger.json#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/0/0", 415s # "keywordLocation": "/items/items/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/0", 415s # "keywordLocation": "/items/items" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/items" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 734 - refRemote.json: "base URI change - change folder" - "number is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 735 - refRemote.json: "base URI change - change folder" - "string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/list/0", 415s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/list", 415s # "keywordLocation": "/properties/list/$ref/items" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/folderInteger.json#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/list/0", 415s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/list", 415s # "keywordLocation": "/properties/list/$ref/items" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 736 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 737 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/list/0", 415s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/list", 415s # "keywordLocation": "/properties/list/$ref/items" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "/list/0", 415s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 415s # "error": "subschema is not valid against all items", 415s # "instanceLocation": "/list", 415s # "keywordLocation": "/properties/list/$ref/items" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 738 - refRemote.json: "root ref in remote ref" - "string is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 739 - refRemote.json: "root ref in remote ref" - "null is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 740 - refRemote.json: "root ref in remote ref" - "object is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf/0/type", 415s # "error": "got object, not null", 415s # "instanceLocation": "/name", 415s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/type", 415s # "error": "got object, not string", 415s # "instanceLocation": "/name", 415s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf", 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "/name", 415s # "keywordLocation": "/properties/name/$ref/anyOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf/0/type", 415s # "error": "got object, not null", 415s # "instanceLocation": "/name", 415s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/type", 415s # "error": "got object, not string", 415s # "instanceLocation": "/name", 415s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/name.json#/definitions/orNull/anyOf", 415s # "error": "no subschemas are valid", 415s # "instanceLocation": "/name", 415s # "keywordLocation": "/properties/name/$ref/anyOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 741 - refRemote.json: "remote ref with ref to definitions" - "invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/allOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties/bar/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/bar", 415s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/definitions/inner/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/ref-and-definitions.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf/0/$ref/allOf" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 415s # "error": "subschema 0 is not valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/allOf" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 742 - refRemote.json: "remote ref with ref to definitions" - "valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 743 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 744 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/locationIndependentIdentifier.json#/definitions/A/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/$ref/$ref/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/locationIndependentIdentifier.json#/definitions/A/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/$ref/$ref/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 745 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/name/foo", 415s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/name", 415s # "keywordLocation": "/properties/name/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 415s # "error": "got integer, not string", 415s # "instanceLocation": "/name/foo", 415s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "/name", 415s # "keywordLocation": "/properties/name/$ref/properties" 415s # }, 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 415s # "error": "not all properties are valid", 415s # "instanceLocation": "", 415s # "keywordLocation": "/properties" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 746 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 747 - refRemote.json: "$ref to $ref finds location-independent $id" - "number is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 748 - refRemote.json: "$ref to $ref finds location-independent $id" - "non-number is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/detached-ref.json#/definitions/detached/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/$ref/$ref/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "absoluteKeywordLocation": "http://localhost:1234/draft7/detached-ref.json#/definitions/detached/type", 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/$ref/$ref/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 749 - required.json: "required validation" - "present required property is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 750 - required.json: "required validation" - "non-present required property is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing property: foo", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing property: foo", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 751 - required.json: "required validation" - "ignores arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 752 - required.json: "required validation" - "ignores strings" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 753 - required.json: "required validation" - "ignores other non-objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 754 - required.json: "required default validation" - "not required by default" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 755 - required.json: "required with empty array" - "property not required" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 756 - required.json: "required with escaped characters" - "object with all properties present is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 757 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 758 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 759 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 760 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing properties: __proto__, toString, constructor", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing properties: __proto__, toString, constructor", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 761 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing properties: toString, constructor", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing properties: toString, constructor", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 762 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing properties: __proto__, constructor", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing properties: __proto__, constructor", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 763 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing properties: __proto__, toString", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "object is missing properties: __proto__, toString", 415s # "instanceLocation": "", 415s # "keywordLocation": "/required" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 764 - required.json: "required properties whose names are Javascript object property names" - "all present" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s # 415s ok 765 - type.json: "integer type matches integers" - "an integer is an integer" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 766 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 767 - type.json: "integer type matches integers" - "a float is not an integer" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 768 - type.json: "integer type matches integers" - "a string is not an integer" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 769 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 770 - type.json: "integer type matches integers" - "an object is not an integer" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 771 - type.json: "integer type matches integers" - "an array is not an integer" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 772 - type.json: "integer type matches integers" - "a boolean is not an integer" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 773 - type.json: "integer type matches integers" - "null is not an integer" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not integer", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 774 - type.json: "number type matches numbers" - "an integer is a number" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 775 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 776 - type.json: "number type matches numbers" - "a float is a number" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 777 - type.json: "number type matches numbers" - "a string is not a number" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 778 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 779 - type.json: "number type matches numbers" - "an object is not a number" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 780 - type.json: "number type matches numbers" - "an array is not a number" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 781 - type.json: "number type matches numbers" - "a boolean is not a number" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 782 - type.json: "number type matches numbers" - "null is not a number" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not number", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 783 - type.json: "string type matches strings" - "1 is not a string" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 784 - type.json: "string type matches strings" - "a float is not a string" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 785 - type.json: "string type matches strings" - "a string is a string" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 786 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 787 - type.json: "string type matches strings" - "an empty string is still a string" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 788 - type.json: "string type matches strings" - "an object is not a string" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 789 - type.json: "string type matches strings" - "an array is not a string" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 790 - type.json: "string type matches strings" - "a boolean is not a string" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 791 - type.json: "string type matches strings" - "null is not a string" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 792 - type.json: "object type matches objects" - "an integer is not an object" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 793 - type.json: "object type matches objects" - "a float is not an object" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 794 - type.json: "object type matches objects" - "a string is not an object" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 795 - type.json: "object type matches objects" - "an object is an object" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 796 - type.json: "object type matches objects" - "an array is not an object" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 797 - type.json: "object type matches objects" - "a boolean is not an object" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 798 - type.json: "object type matches objects" - "null is not an object" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 799 - type.json: "array type matches arrays" - "an integer is not an array" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not array", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not array", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 800 - type.json: "array type matches arrays" - "a float is not an array" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not array", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not array", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 801 - type.json: "array type matches arrays" - "a string is not an array" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not array", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not array", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 802 - type.json: "array type matches arrays" - "an object is not an array" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not array", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not array", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 803 - type.json: "array type matches arrays" - "an array is an array" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 804 - type.json: "array type matches arrays" - "a boolean is not an array" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not array", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not array", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 805 - type.json: "array type matches arrays" - "null is not an array" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not array", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not array", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 806 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 807 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 808 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 809 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 810 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 811 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 812 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 813 - type.json: "boolean type matches booleans" - "true is a boolean" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 814 - type.json: "boolean type matches booleans" - "false is a boolean" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 815 - type.json: "boolean type matches booleans" - "null is not a boolean" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not boolean", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 816 - type.json: "null type matches only the null object" - "an integer is not null" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 817 - type.json: "null type matches only the null object" - "a float is not null" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 818 - type.json: "null type matches only the null object" - "zero is not null" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 819 - type.json: "null type matches only the null object" - "a string is not null" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 820 - type.json: "null type matches only the null object" - "an empty string is not null" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 821 - type.json: "null type matches only the null object" - "an object is not null" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 822 - type.json: "null type matches only the null object" - "an array is not null" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 823 - type.json: "null type matches only the null object" - "true is not null" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 824 - type.json: "null type matches only the null object" - "false is not null" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 825 - type.json: "null type matches only the null object" - "null is null" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 826 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 827 - type.json: "multiple types can be specified in an array" - "a string is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 828 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not one of integer, string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got number, not one of integer, string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 829 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not one of integer, string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got object, not one of integer, string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 830 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not one of integer, string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got array, not one of integer, string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 831 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not one of integer, string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got boolean, not one of integer, string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 832 - type.json: "multiple types can be specified in an array" - "null is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not one of integer, string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not one of integer, string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 833 - type.json: "type as array with one item" - "string is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 834 - type.json: "type as array with one item" - "number is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not one of string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not one of string", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 835 - type.json: "type: array or object" - "array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 836 - type.json: "type: array or object" - "object is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 837 - type.json: "type: array or object" - "number is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not one of array, object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not one of array, object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 838 - type.json: "type: array or object" - "string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not one of array, object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not one of array, object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 839 - type.json: "type: array or object" - "null is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not one of array, object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got null, not one of array, object", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 840 - type.json: "type: array, object or null" - "array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 841 - type.json: "type: array, object or null" - "object is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 842 - type.json: "type: array, object or null" - "null is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 843 - type.json: "type: array, object or null" - "number is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not one of array, object, null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got integer, not one of array, object, null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 844 - type.json: "type: array, object or null" - "string is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not one of array, object, null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "got string, not one of array, object, null", 415s # "instanceLocation": "", 415s # "keywordLocation": "/type" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 845 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 846 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 847 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 2 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 2 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 848 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 849 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 850 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 851 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 852 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 2 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 2 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 853 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 854 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 855 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 856 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 857 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 858 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 859 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 860 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 2 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 2 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 861 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 862 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 863 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 864 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 865 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 866 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 867 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 868 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 4 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 4 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 869 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 870 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 871 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 872 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 873 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 874 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 875 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 876 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 877 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 878 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 879 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 2 and 3 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 2 and 3 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 880 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 2 and 3 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 2 and 3 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 881 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 882 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 883 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 884 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "items at indices 0 and 1 are not unique", 415s # "instanceLocation": "", 415s # "keywordLocation": "/uniqueItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 885 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "additional item not permitted", 415s # "instanceLocation": "/2", 415s # "keywordLocation": "/additionalItems" 415s # }, 415s # { 415s # "error": "subschema is not valid against all additional items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/additionalItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "additional item not permitted", 415s # "instanceLocation": "/2", 415s # "keywordLocation": "/additionalItems" 415s # }, 415s # { 415s # "error": "subschema is not valid against all additional items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/additionalItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s ok 886 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 887 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 888 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 889 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 890 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 891 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 892 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 893 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 894 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 895 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 896 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 897 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 898 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 899 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 900 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 901 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 902 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 903 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 904 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 905 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 906 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 907 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 908 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 909 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 910 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 911 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 912 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 913 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 415s # result: { 415s # "errors": [ 415s # { 415s # "error": "additional item not permitted", 415s # "instanceLocation": "/2", 415s # "keywordLocation": "/additionalItems" 415s # }, 415s # { 415s # "error": "subschema is not valid against all additional items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/additionalItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s # short-circuited result: { 415s # "errors": [ 415s # { 415s # "error": "additional item not permitted", 415s # "instanceLocation": "/2", 415s # "keywordLocation": "/additionalItems" 415s # }, 415s # { 415s # "error": "subschema is not valid against all additional items", 415s # "instanceLocation": "", 415s # "keywordLocation": "/additionalItems" 415s # } 415s # ], 415s # "valid": false 415s # } 415s ok 1 - test passes: data is valid: false 415s 1..1 415s } 415s # 415s ok 914 - optional/bignum.json: "integer" - "a bignum is an integer" { 415s # result: { 415s # "valid": true 415s # } 415s # short-circuited result: { 415s # "valid": true 415s # } 415s ok 1 - test passes: data is valid: true 415s 1..1 415s } 415s ok 915 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 415s # result: { 415s # "valid": true 415s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 916 - optional/bignum.json: "number" - "a bignum is a number" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 917 - optional/bignum.json: "number" - "a negative bignum is a number" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 918 - optional/bignum.json: "string" - "a bignum is not a string" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "got integer, not string", 416s # "instanceLocation": "", 416s # "keywordLocation": "/type" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "got integer, not string", 416s # "instanceLocation": "", 416s # "keywordLocation": "/type" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 919 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 920 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 416s # "instanceLocation": "", 416s # "keywordLocation": "/exclusiveMaximum" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 416s # "instanceLocation": "", 416s # "keywordLocation": "/exclusiveMaximum" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 921 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 922 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 416s # "instanceLocation": "", 416s # "keywordLocation": "/exclusiveMinimum" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 416s # "instanceLocation": "", 416s # "keywordLocation": "/exclusiveMinimum" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s # 416s ok 923 - optional/content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 924 - optional/content.json: "validation of string-encoded content based on media type" - "an invalid JSON document" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1167.", 416s # "instanceLocation": "", 416s # "keywordLocation": "/contentMediaType" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1167.", 416s # "instanceLocation": "", 416s # "keywordLocation": "/contentMediaType" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 925 - optional/content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 926 - optional/content.json: "validation of binary string-encoding" - "a valid base64 string" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 927 - optional/content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character)" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "could not decode base64 string: invalid characters", 416s # "instanceLocation": "", 416s # "keywordLocation": "/contentEncoding" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "could not decode base64 string: invalid characters", 416s # "instanceLocation": "", 416s # "keywordLocation": "/contentEncoding" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 928 - optional/content.json: "validation of binary string-encoding" - "ignores non-strings" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 929 - optional/content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 930 - optional/content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\\n\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1167.", 416s # "instanceLocation": "", 416s # "keywordLocation": "/contentMediaType" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\\n\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1167.", 416s # "instanceLocation": "", 416s # "keywordLocation": "/contentMediaType" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 931 - optional/content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "could not decode base64 string: invalid characters", 416s # "instanceLocation": "", 416s # "keywordLocation": "/contentEncoding" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "could not decode base64 string: invalid characters", 416s # "instanceLocation": "", 416s # "keywordLocation": "/contentEncoding" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 932 - optional/content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s # 416s ok 933 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "missing bar is invalid" { 416s # result: { 416s # "errors": [ 416s # { 416s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired/foo", 416s # "error": "object is missing property: bar", 416s # "instanceLocation": "", 416s # "keywordLocation": "/allOf/1/$ref/dependentRequired/foo" 416s # }, 416s # { 416s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired", 416s # "error": "not all dependencies are satisfied", 416s # "instanceLocation": "", 416s # "keywordLocation": "/allOf/1/$ref/dependentRequired" 416s # }, 416s # { 416s # "error": "subschema 1 is not valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/allOf" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired/foo", 416s # "error": "object is missing property: bar", 416s # "instanceLocation": "", 416s # "keywordLocation": "/allOf/1/$ref/dependentRequired/foo" 416s # }, 416s # { 416s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired", 416s # "error": "not all dependencies are satisfied", 416s # "instanceLocation": "", 416s # "keywordLocation": "/allOf/1/$ref/dependentRequired" 416s # }, 416s # { 416s # "error": "subschema 1 is not valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/allOf" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 934 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "present bar is valid" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s # 416s ok 935 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 936 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 937 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 938 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 939 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 940 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 941 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 942 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 943 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true # 416s 1..1 416s } 416s 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" 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected false; got true 416s # schema: { 416s # "pattern": "^\\d$", 416s # "type": "string" 416s # } 416s # data: "߀" 416s # result: 1 416s 1..1 416s } 416s 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" 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected false; got true 416s # schema: { 416s # "pattern": "^\\d$", 416s # "type": "string" 416s # } 416s # data: "߀" 416s # result: 1 416s 1..1 416s } 416s 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" 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false # 416s 1..1 416s } 416s 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" 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected true; got false 416s # schema: { 416s # "pattern": "^\\D$", 416s # "type": "string" 416s # } 416s # data: "߀" 416s # result: 0 416s 1..1 416s } 416s 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" 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected true; got false 416s # schema: { 416s # "pattern": "^\\D$", 416s # "type": "string" 416s # } 416s # data: "߀" 416s # result: 0 416s 1..1 416s } 416s ok 949 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true # 416s 1..1 416s } 416s 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" 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected false; got true 416s # schema: { 416s # "pattern": "^\\w$", 416s # "type": "string" 416s # } 416s # data: "é" 416s # result: 1 416s 1..1 416s } 416s 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" 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false # 416s 1..1 416s } 416s 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" 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected true; got false 416s # schema: { 416s # "pattern": "^\\W$", 416s # "type": "string" 416s # } 416s # data: "é" 416s # result: 0 416s 1..1 416s } 416s ok 953 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 954 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 955 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 956 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 957 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 958 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected true; got false 416s # schema: { 416s # "pattern": "^\\s$", 416s # "type": "string" 416s # } 416s # data: "" 416s # result: 0 416s 1..1 416s } 416s ok 959 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 960 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 961 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 962 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 963 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 964 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 965 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 966 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 967 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 968 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s 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" 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected false; got true 416s # schema: { 416s # "pattern": "^\\S$", 416s # "type": "string" 416s # } 416s # data: "" 416s # result: 1 416s 1..1 416s } 416s ok 970 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 971 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 972 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 973 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 974 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 975 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 976 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 977 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 978 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 979 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s 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" 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected false; got true 416s # schema: { 416s # "pattern": "\\wcole" 416s # } 416s # 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." 416s # result: 1 416s 1..1 416s } 416s 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" 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected false; got true 416s # schema: { 416s # "pattern": "\\wcole" 416s # } 416s # 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." 416s # result: 1 416s 1..1 416s } 416s ok 982 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 983 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 984 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 985 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 986 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 987 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s 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" 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected false; got true 416s # schema: { 416s # "pattern": "^\\d+$" 416s # } 416s # data: "৪২" 416s # result: 1 416s 1..1 416s } 416s ok 989 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 990 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 991 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 992 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 993 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 994 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 995 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "additional property not permitted", 416s # "instanceLocation": "/L'ÉCOLE", 416s # "keywordLocation": "/additionalProperties" 416s # }, 416s # { 416s # "error": "not all additional properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/additionalProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "additional property not permitted", 416s # "instanceLocation": "/L'ÉCOLE", 416s # "keywordLocation": "/additionalProperties" 416s # }, 416s # { 416s # "error": "not all additional properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/additionalProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 996 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s 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" 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected false; got true 416s # schema: { 416s # "additionalProperties": false, 416s # "patternProperties": { 416s # "\\wcole": true 416s # }, 416s # "type": "object" 416s # } 416s # data: { 416s # "l'école": "pas de vraie vie" 416s # } 416s # result: 1 416s 1..1 416s } 416s 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" 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected false; got true 416s # schema: { 416s # "additionalProperties": false, 416s # "patternProperties": { 416s # "\\wcole": true 416s # }, 416s # "type": "object" 416s # } 416s # data: { 416s # "l'école": "pas de vraie vie" 416s # } 416s # result: 1 416s 1..1 416s } 416s ok 999 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "additional property not permitted", 416s # "instanceLocation": "/L'ÉCOLE", 416s # "keywordLocation": "/additionalProperties" 416s # }, 416s # { 416s # "error": "not all additional properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/additionalProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "additional property not permitted", 416s # "instanceLocation": "/L'ÉCOLE", 416s # "keywordLocation": "/additionalProperties" 416s # }, 416s # { 416s # "error": "not all additional properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/additionalProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 1000 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "additional property not permitted", 416s # "instanceLocation": "/l'école", 416s # "keywordLocation": "/additionalProperties" 416s # }, 416s # { 416s # "error": "not all additional properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/additionalProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "additional property not permitted", 416s # "instanceLocation": "/l'école", 416s # "keywordLocation": "/additionalProperties" 416s # }, 416s # { 416s # "error": "not all additional properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/additionalProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 1001 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "additional property not permitted", 416s # "instanceLocation": "/l'école", 416s # "keywordLocation": "/additionalProperties" 416s # }, 416s # { 416s # "error": "not all additional properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/additionalProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "additional property not permitted", 416s # "instanceLocation": "/l'école", 416s # "keywordLocation": "/additionalProperties" 416s # }, 416s # { 416s # "error": "not all additional properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/additionalProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 1002 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1003 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1004 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "additional property not permitted", 416s # "instanceLocation": "/-%#", 416s # "keywordLocation": "/additionalProperties" 416s # }, 416s # { 416s # "error": "not all additional properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/additionalProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "additional property not permitted", 416s # "instanceLocation": "/-%#", 416s # "keywordLocation": "/additionalProperties" 416s # }, 416s # { 416s # "error": "not all additional properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/additionalProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s 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" 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s not ok 1 - evaluation result is incorrect # 416s # Failed test (with amnesty) 'evaluation result is incorrect' 416s # at t/zzz-acceptance-draft7.t line 51. 416s # expected false; got true 416s # schema: { 416s # "additionalProperties": false, 416s # "patternProperties": { 416s # "^\\d+$": true 416s # }, 416s # "type": "object" 416s # } 416s # data: { 416s # "৪২": "khajit has wares if you have coin" 416s # } 416s # result: 1 416s 1..1 416s } 416s ok 1006 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1007 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "additional property not permitted", 416s # "instanceLocation": "/-%#", 416s # "keywordLocation": "/additionalProperties" 416s # }, 416s # { 416s # "error": "not all additional properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/additionalProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "additional property not permitted", 416s # "instanceLocation": "/-%#", 416s # "keywordLocation": "/additionalProperties" 416s # }, 416s # { 416s # "error": "not all additional properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/additionalProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 1008 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s # 416s ok 1009 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s # 416s ok 1010 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1011 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1012 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 416s # result: { 416s # "errors": [ 416s # { 416s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 416s # "error": "value does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/0/$ref/enum" 416s # }, 416s # { 416s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 416s # "error": "got integer, not string", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/1/$ref/type" 416s # }, 416s # { 416s # "error": "no subschemas are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 416s # "error": "value does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/0/$ref/enum" 416s # }, 416s # { 416s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 416s # "error": "got integer, not string", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/1/$ref/type" 416s # }, 416s # { 416s # "error": "no subschemas are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 1013 - optional/id.json: "non-schema object containing a plain-name $id property" - "skip traversing definition for a valid result" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1014 - optional/id.json: "non-schema object containing a plain-name $id property" - "const at const_not_anchor does not match" { 416s # result: { 416s # "errors": [ 416s # { 416s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 416s # "error": "value does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/else/$ref/const" 416s # }, 416s # { 416s # "error": "subschema is not valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/else" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 416s # "error": "value does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/else/$ref/const" 416s # }, 416s # { 416s # "error": "subschema is not valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/else" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 1015 - optional/id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1016 - optional/id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 416s # result: { 416s # "errors": [ 416s # { 416s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 416s # "error": "value does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/else/$ref/const" 416s # }, 416s # { 416s # "error": "subschema is not valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/else" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 416s # "error": "value does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/else/$ref/const" 416s # }, 416s # { 416s # "error": "subschema is not valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/else" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s # 416s ok 1017 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1018 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1019 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1020 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 1021 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 1022 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 1023 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "pattern does not match", 416s # "instanceLocation": "", 416s # "keywordLocation": "/pattern" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 1024 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1025 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1026 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1027 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "got string, not integer", 416s # "instanceLocation": "/🐲", 416s # "keywordLocation": "/patternProperties/^🐲*$/type" 416s # }, 416s # { 416s # "error": "not all properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/patternProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "got string, not integer", 416s # "instanceLocation": "/🐲", 416s # "keywordLocation": "/patternProperties/^🐲*$/type" 416s # }, 416s # { 416s # "error": "not all properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/patternProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 1028 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 416s # result: { 416s # "errors": [ 416s # { 416s # "error": "got string, not integer", 416s # "instanceLocation": "/🐲🐲", 416s # "keywordLocation": "/patternProperties/^🐲*$/type" 416s # }, 416s # { 416s # "error": "not all properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/patternProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "error": "got string, not integer", 416s # "instanceLocation": "/🐲🐲", 416s # "keywordLocation": "/patternProperties/^🐲*$/type" 416s # }, 416s # { 416s # "error": "not all properties are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/patternProperties" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s # 416s 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" { 416s # result: { 416s # "valid": true 416s # } 416s # short-circuited result: { 416s # "valid": true 416s # } 416s ok 1 - test passes: data is valid: true 416s 1..1 416s } 416s ok 1030 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 416s # result: { 416s # "errors": [ 416s # { 416s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 416s # "error": "subschema is valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/0/$ref/not" 416s # }, 416s # { 416s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 416s # "error": "subschema is valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/1/$ref/not" 416s # }, 416s # { 416s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 416s # "error": "got null, not string", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/2/$ref/type" 416s # }, 416s # { 416s # "error": "no subschemas are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 416s # "error": "subschema is valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/0/$ref/not" 416s # }, 416s # { 416s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 416s # "error": "subschema is valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/1/$ref/not" 416s # }, 416s # { 416s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 416s # "error": "got null, not string", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/2/$ref/type" 416s # }, 416s # { 416s # "error": "no subschemas are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s ok 1031 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 416s # result: { 416s # "errors": [ 416s # { 416s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 416s # "error": "subschema is valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/0/$ref/not" 416s # }, 416s # { 416s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 416s # "error": "subschema is valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/1/$ref/not" 416s # }, 416s # { 416s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 416s # "error": "got integer, not string", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/2/$ref/type" 416s # }, 416s # { 416s # "error": "no subschemas are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf" 416s # } 416s # ], 416s # "valid": false 416s # } 416s # short-circuited result: { 416s # "errors": [ 416s # { 416s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 416s # "error": "subschema is valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/0/$ref/not" 416s # }, 416s # { 416s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 416s # "error": "subschema is valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/1/$ref/not" 416s # }, 416s # { 416s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 416s # "error": "got integer, not string", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf/2/$ref/type" 416s # }, 416s # { 416s # "error": "no subschemas are valid", 416s # "instanceLocation": "", 416s # "keywordLocation": "/anyOf" 416s # } 416s # ], 416s # "valid": false 416s # } 416s ok 1 - test passes: data is valid: false 416s 1..1 416s } 416s # 416s # generated with: Test::JSON::Schema::Acceptance 1.029 416s # with commit: 9ad349be933f1e74810cb4fd3ad19780694dc77e (Test-JSON-Schema-Acceptance-1.027-29-g9ad349b) 416s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 416s # specification version: draft7 416s # optional tests included: yes 416s # skipping directory: optional/format 416s # 416s # filename pass todo-fail fail 416s # --------------------------------------------------------------- 416s # additionalItems.json 20 0 0 416s # additionalProperties.json 16 0 0 416s # allOf.json 30 0 0 416s # anyOf.json 18 0 0 416s # boolean_schema.json 18 0 0 416s # const.json 50 0 0 416s # contains.json 21 0 0 416s # default.json 7 0 0 416s # definitions.json 2 0 0 416s # dependencies.json 36 0 0 416s # enum.json 45 0 0 416s # exclusiveMaximum.json 4 0 0 416s # exclusiveMinimum.json 4 0 0 416s # format.json 102 0 0 416s # if-then-else.json 26 0 0 416s # infinite-loop-detection.json 2 0 0 416s # items.json 28 0 0 416s # maxItems.json 6 0 0 416s # maxLength.json 7 0 0 416s # maxProperties.json 10 0 0 416s # maximum.json 8 0 0 416s # minItems.json 6 0 0 416s # minLength.json 7 0 0 416s # minProperties.json 8 0 0 416s # minimum.json 11 0 0 416s # multipleOf.json 10 0 0 416s # not.json 38 0 0 416s # oneOf.json 27 0 0 416s # pattern.json 9 0 0 416s # patternProperties.json 23 0 0 416s # properties.json 28 0 0 416s # propertyNames.json 20 0 0 416s # ref.json 78 0 0 416s # refRemote.json 23 0 0 416s # required.json 16 0 0 416s # type.json 80 0 0 416s # uniqueItems.json 69 0 0 416s # optional/bignum.json 9 0 0 416s # optional/content.json 10 0 0 416s # optional/cross-draft.json 2 0 0 416s # optional/ecmascript-regex.json 60 14 0 416s # optional/float-overflow.json 1 0 0 416s # optional/id.json 7 0 0 416s # optional/non-bmp-regex.json 12 0 0 416s # optional/unknownKeyword.json 3 0 0 416s # --------------------------------------------------------------- 416s # TOTAL 1017 14 0 416s # 416s # Congratulations, all non-optional tests are passing! 416s # 416s ok 1032 - no leaks in the main evaluator object 416s ok 1033 - no leaks in the short-circuiting evaluator object 416s 1..1033 416s ok 416s t/zzz-check-breaks.t .................... 416s 1..2 416s ok 1 # skip no conflicts module found to check against 416s ok 2 - checked x_breaks data 416s ok 416s All tests successful. 416s 416s Test Summary Report 416s ------------------- 416s t/zzz-acceptance-draft2019-09-format.t (Wstat: 0 Tests: 485 Failed: 0) 416s TODO passed: 149-205, 270-282, 294, 427-436, 462 416s t/zzz-acceptance-draft2019-09.t (Wstat: 0 Tests: 1383 Failed: 0) 416s TODO passed: 1244-1279, 1288-1297, 1303, 1314, 1325-1326 416s 1333, 1342-1343, 1350, 1373-1378 416s t/zzz-acceptance-draft2020-12-format.t (Wstat: 0 Tests: 493 Failed: 0) 416s TODO passed: 99, 120-121, 157-213, 278-290, 302, 435-444 416s 470 416s t/zzz-acceptance-draft2020-12.t (Wstat: 0 Tests: 1417 Failed: 0) 416s TODO passed: 1272-1307, 1318-1327, 1333, 1344, 1355-1356 416s 1363, 1372-1373, 1380, 1407-1412 416s t/zzz-acceptance-draft4-format.t (Wstat: 0 Tests: 155 Failed: 0) 416s TODO passed: 153 416s t/zzz-acceptance-draft4.t (Wstat: 0 Tests: 712 Failed: 0) 416s TODO passed: 628-637, 643, 654, 665-666, 673, 682-683 416s 690 416s t/zzz-acceptance-draft6-format.t (Wstat: 0 Tests: 216 Failed: 0) 416s TODO passed: 179-188, 214 416s t/zzz-acceptance-draft6.t (Wstat: 0 Tests: 937 Failed: 0) 416s TODO passed: 847-856, 862, 873, 884-885, 892, 901-902 416s 909 416s t/zzz-acceptance-draft7-format.t (Wstat: 0 Tests: 436 Failed: 0) 416s TODO passed: 122-177, 242-254, 266, 399-408, 434 416s t/zzz-acceptance-draft7.t (Wstat: 0 Tests: 1033 Failed: 0) 416s TODO passed: 943-952, 958, 969, 980-981, 988, 997-998 416s 1005 416s Files=45, Tests=10461, 172 wallclock secs ( 6.13 usr 2.06 sys + 158.67 cusr 12.06 csys = 178.92 CPU) 416s Result: PASS 416s autopkgtest [15:13:13]: test autodep8-perl-build-deps: -----------------------] 421s autopkgtest [15:13:18]: test autodep8-perl-build-deps: - - - - - - - - - - results - - - - - - - - - - 421s autodep8-perl-build-deps PASS 425s autopkgtest [15:13:22]: test autodep8-perl: preparing testbed 456s autopkgtest [15:13:53]: testbed dpkg architecture: armhf 458s autopkgtest [15:13:55]: testbed apt version: 3.1.6ubuntu2 462s autopkgtest [15:13:59]: @@@@@@@@@@@@@@@@@@@@ test bed setup 464s autopkgtest [15:14:01]: testbed release detected to be: resolute 472s autopkgtest [15:14:09]: updating testbed package index (apt update) 474s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 474s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [87.8 kB] 475s Get:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease [87.8 kB] 475s Get:4 http://ftpmaster.internal/ubuntu resolute-security InRelease [87.8 kB] 475s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [3643 kB] 477s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5856 B] 477s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [205 kB] 477s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [70.5 kB] 477s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [252 kB] 478s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted armhf Packages [940 B] 478s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [2391 kB] 479s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [34.2 kB] 479s Get:13 http://ftpmaster.internal/ubuntu resolute/main Sources [1404 kB] 479s Get:14 http://ftpmaster.internal/ubuntu resolute/restricted Sources [12.5 kB] 479s Get:15 http://ftpmaster.internal/ubuntu resolute/multiverse Sources [308 kB] 479s Get:16 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.0 MB] 481s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1372 kB] 482s Get:18 http://ftpmaster.internal/ubuntu resolute/restricted armhf Packages [1232 B] 482s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [15.0 MB] 482s Get:20 http://ftpmaster.internal/ubuntu resolute/multiverse armhf Packages [182 kB] 485s Fetched 46.3 MB in 11s (4096 kB/s) 487s Reading package lists... 493s autopkgtest [15:14:30]: upgrading testbed (apt dist-upgrade and autopurge) 495s Reading package lists... 495s Building dependency tree... 495s Reading state information... 496s Calculating upgrade... 497s The following NEW packages will be installed: 497s python3.14-gdbm 497s The following packages will be upgraded: 497s apparmor apt base-files bind9-dnsutils bind9-host bind9-libs binutils 497s binutils-arm-linux-gnueabihf binutils-common bsdextrautils bsdutils 497s cloud-init cloud-init-base distro-info-data dpkg dpkg-dev eject fdisk 497s gcc-15-base gir1.2-girepository-2.0 gir1.2-glib-2.0 gnu-coreutils 497s libapparmor1 libapt-pkg7.0 libatomic1 libaudit-common libaudit1 libbinutils 497s libblkid1 libbrotli1 libcap-ng0 libctf-nobfd0 libctf0 libdpkg-perl 497s libdrm-common libdrm2 libelf1t64 libfdisk1 libgcc-s1 libgirepository-1.0-1 497s libglib2.0-0t64 libglib2.0-data libjson-c5 liblastlog2-2 libmount1 497s libnewt0.52 libnftables1 libp11-kit0 libpython3.13-minimal 497s libpython3.13-stdlib libseccomp2 libselinux1 libsemanage-common libsemanage2 497s libsframe2 libsmartcols1 libstdc++6 libuuid1 libxml2-16 login 497s lto-disabled-list mount nftables python-apt-common python3-apt 497s python3-bcrypt python3-blinker python3-cffi-backend python3-dbus 497s python3-gdbm python3-inflect python3-jwt python3-lazr.uri python3-markupsafe 497s python3-oauthlib python3-openssl python3-pyparsing python3-yaml python3-zipp 497s python3.13 python3.13-gdbm python3.13-minimal sudo-rs tzdata util-linux 497s uuid-runtime whiptail 498s 87 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 498s Need to get 26.1 MB of archives. 498s After this operation, 1018 kB of additional disk space will be used. 498s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf base-files armhf 14ubuntu4 [75.4 kB] 498s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf libatomic1 armhf 15.2.0-5ubuntu1 [7942 B] 498s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf gcc-15-base armhf 15.2.0-5ubuntu1 [58.1 kB] 498s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf libgcc-s1 armhf 15.2.0-5ubuntu1 [40.6 kB] 498s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libstdc++6 armhf 15.2.0-5ubuntu1 [731 kB] 498s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libapt-pkg7.0 armhf 3.1.11 [1157 kB] 499s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf dpkg armhf 1.22.21ubuntu4 [1245 kB] 499s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf eject armhf 2.41.2-4ubuntu1 [65.9 kB] 499s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf fdisk armhf 2.41.2-4ubuntu1 [164 kB] 499s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf libblkid1 armhf 2.41.2-4ubuntu1 [174 kB] 499s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libmount1 armhf 2.41.2-4ubuntu1 [206 kB] 499s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libsmartcols1 armhf 2.41.2-4ubuntu1 [143 kB] 499s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf mount armhf 2.41.2-4ubuntu1 [166 kB] 499s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf uuid-runtime armhf 2.41.2-4ubuntu1 [67.6 kB] 499s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf libuuid1 armhf 2.41.2-4ubuntu1 [43.8 kB] 499s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf libfdisk1 armhf 2.41.2-4ubuntu1 [222 kB] 499s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf bsdutils armhf 1:2.41.2-4ubuntu1 [98.2 kB] 499s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf util-linux armhf 2.41.2-4ubuntu1 [1146 kB] 499s Get:19 http://ftpmaster.internal/ubuntu resolute/main armhf bsdextrautils armhf 2.41.2-4ubuntu1 [101 kB] 499s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf libselinux1 armhf 3.8.1-1build2 [81.3 kB] 499s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf libseccomp2 armhf 2.6.0-2ubuntu3 [53.5 kB] 499s Get:22 http://ftpmaster.internal/ubuntu resolute/main armhf apt armhf 3.1.11 [1434 kB] 500s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf gnu-coreutils armhf 9.7-3ubuntu1 [1209 kB] 500s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf libaudit-common all 1:4.0.5-1build2 [6596 B] 500s Get:25 http://ftpmaster.internal/ubuntu resolute/main armhf libcap-ng0 armhf 0.8.5-4build3 [14.0 kB] 500s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf libaudit1 armhf 1:4.0.5-1build2 [51.7 kB] 500s Get:27 http://ftpmaster.internal/ubuntu resolute/main armhf login armhf 1:4.16.0-2+really2.41.2-4ubuntu1 [109 kB] 500s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf python3.13 armhf 3.13.9-1 [753 kB] 500s Get:29 http://ftpmaster.internal/ubuntu resolute/main armhf python3.13-minimal armhf 3.13.9-1 [2058 kB] 500s Get:30 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.13-stdlib armhf 3.13.9-1 [1957 kB] 500s Get:31 http://ftpmaster.internal/ubuntu resolute/main armhf libpython3.13-minimal armhf 3.13.9-1 [873 kB] 500s Get:32 http://ftpmaster.internal/ubuntu resolute/main armhf tzdata all 2025b-5ubuntu1 [198 kB] 500s Get:33 http://ftpmaster.internal/ubuntu resolute/main armhf liblastlog2-2 armhf 2.41.2-4ubuntu1 [34.6 kB] 500s Get:34 http://ftpmaster.internal/ubuntu resolute/main armhf libsemanage-common all 3.8.1-1build1 [7916 B] 500s Get:35 http://ftpmaster.internal/ubuntu resolute/main armhf libsemanage2 armhf 3.8.1-1build1 [89.2 kB] 500s Get:36 http://ftpmaster.internal/ubuntu resolute/main armhf distro-info-data all 0.68 [7378 B] 500s Get:37 http://ftpmaster.internal/ubuntu resolute/main armhf gir1.2-girepository-2.0 armhf 1.86.0-6 [25.3 kB] 500s Get:38 http://ftpmaster.internal/ubuntu resolute/main armhf gir1.2-glib-2.0 armhf 2.86.1-1 [182 kB] 500s Get:39 http://ftpmaster.internal/ubuntu resolute/main armhf libglib2.0-0t64 armhf 2.86.1-1 [1482 kB] 500s Get:40 http://ftpmaster.internal/ubuntu resolute/main armhf libgirepository-1.0-1 armhf 1.86.0-6 [111 kB] 500s Get:41 http://ftpmaster.internal/ubuntu resolute/main armhf libapparmor1 armhf 5.0.0~alpha1-0ubuntu8.1 [52.9 kB] 500s Get:42 http://ftpmaster.internal/ubuntu resolute/main armhf libelf1t64 armhf 0.193-3 [50.9 kB] 500s Get:43 http://ftpmaster.internal/ubuntu resolute/main armhf libglib2.0-data all 2.86.1-1 [56.7 kB] 501s Get:44 http://ftpmaster.internal/ubuntu resolute/main armhf libjson-c5 armhf 0.18+ds-1.1 [33.3 kB] 501s Get:45 http://ftpmaster.internal/ubuntu resolute/main armhf libnewt0.52 armhf 0.52.25-1ubuntu2 [39.9 kB] 501s Get:46 http://ftpmaster.internal/ubuntu resolute/main armhf libp11-kit0 armhf 0.25.9-2 [265 kB] 501s Get:47 http://ftpmaster.internal/ubuntu resolute/main armhf libxml2-16 armhf 2.14.5+dfsg-0.2build1 [527 kB] 501s Get:48 http://ftpmaster.internal/ubuntu resolute/main armhf python-apt-common all 3.0.0ubuntu2 [21.7 kB] 501s Get:49 http://ftpmaster.internal/ubuntu resolute/main armhf python3-apt armhf 3.0.0ubuntu2 [189 kB] 501s Get:50 http://ftpmaster.internal/ubuntu resolute/main armhf python3-cffi-backend armhf 2.0.0-2 [99.1 kB] 501s Get:51 http://ftpmaster.internal/ubuntu resolute/main armhf python3-dbus armhf 1.4.0-1build1 [113 kB] 501s Get:52 http://ftpmaster.internal/ubuntu resolute/main armhf python3-yaml armhf 6.0.2-2 [181 kB] 501s Get:53 http://ftpmaster.internal/ubuntu resolute/main armhf sudo-rs armhf 0.2.8-1ubuntu5.1 [548 kB] 501s Get:54 http://ftpmaster.internal/ubuntu resolute/main armhf whiptail armhf 0.52.25-1ubuntu2 [17.1 kB] 501s Get:55 http://ftpmaster.internal/ubuntu resolute/main armhf apparmor armhf 5.0.0~alpha1-0ubuntu8.1 [631 kB] 501s Get:56 http://ftpmaster.internal/ubuntu resolute/main armhf bind9-dnsutils armhf 1:9.20.11-1ubuntu3 [156 kB] 501s Get:57 http://ftpmaster.internal/ubuntu resolute/main armhf bind9-host armhf 1:9.20.11-1ubuntu3 [46.5 kB] 501s Get:58 http://ftpmaster.internal/ubuntu resolute/main armhf bind9-libs armhf 1:9.20.11-1ubuntu3 [1202 kB] 501s Get:59 http://ftpmaster.internal/ubuntu resolute/main armhf libdrm-common all 2.4.127-1ubuntu1 [9716 B] 501s Get:60 http://ftpmaster.internal/ubuntu resolute/main armhf libdrm2 armhf 2.4.127-1ubuntu1 [37.8 kB] 501s Get:61 http://ftpmaster.internal/ubuntu resolute/main armhf nftables armhf 1.1.5-2 [73.2 kB] 501s Get:62 http://ftpmaster.internal/ubuntu resolute/main armhf libnftables1 armhf 1.1.5-2 [329 kB] 501s Get:63 http://ftpmaster.internal/ubuntu resolute/main armhf python3.13-gdbm armhf 3.13.9-1 [30.9 kB] 501s Get:64 http://ftpmaster.internal/ubuntu resolute/main armhf python3.14-gdbm armhf 3.14.0-4 [31.3 kB] 501s Get:65 http://ftpmaster.internal/ubuntu resolute/main armhf python3-gdbm armhf 3.13.9-1 [8884 B] 501s Get:66 http://ftpmaster.internal/ubuntu resolute/main armhf libctf0 armhf 2.45-8ubuntu1 [75.7 kB] 501s Get:67 http://ftpmaster.internal/ubuntu resolute/main armhf libctf-nobfd0 armhf 2.45-8ubuntu1 [78.9 kB] 501s Get:68 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-arm-linux-gnueabihf armhf 2.45-8ubuntu1 [1022 kB] 501s Get:69 http://ftpmaster.internal/ubuntu resolute/main armhf libbinutils armhf 2.45-8ubuntu1 [411 kB] 501s Get:70 http://ftpmaster.internal/ubuntu resolute/main armhf binutils armhf 2.45-8ubuntu1 [3234 B] 501s Get:71 http://ftpmaster.internal/ubuntu resolute/main armhf binutils-common armhf 2.45-8ubuntu1 [221 kB] 501s Get:72 http://ftpmaster.internal/ubuntu resolute/main armhf libsframe2 armhf 2.45-8ubuntu1 [13.3 kB] 501s Get:73 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init-base all 25.4~1gcb12e00e-0ubuntu1 [625 kB] 501s Get:74 http://ftpmaster.internal/ubuntu resolute/main armhf cloud-init all 25.4~1gcb12e00e-0ubuntu1 [2114 B] 501s Get:75 http://ftpmaster.internal/ubuntu resolute/main armhf python3-blinker all 1.9.0-2 [10.8 kB] 501s Get:76 http://ftpmaster.internal/ubuntu resolute/main armhf python3-jwt all 2.10.1-3 [21.1 kB] 501s Get:77 http://ftpmaster.internal/ubuntu resolute/main armhf python3-oauthlib all 3.3.1-1 [93.5 kB] 501s Get:78 http://ftpmaster.internal/ubuntu resolute/main armhf dpkg-dev all 1.22.21ubuntu4 [1088 kB] 501s Get:79 http://ftpmaster.internal/ubuntu resolute/main armhf libdpkg-perl all 1.22.21ubuntu4 [280 kB] 501s Get:80 http://ftpmaster.internal/ubuntu resolute/main armhf lto-disabled-list all 71 [12.5 kB] 501s Get:81 http://ftpmaster.internal/ubuntu resolute/main armhf libbrotli1 armhf 1.1.0-2build6 [320 kB] 501s Get:82 http://ftpmaster.internal/ubuntu resolute/main armhf python3-inflect all 7.5.0-1 [33.9 kB] 501s Get:83 http://ftpmaster.internal/ubuntu resolute/main armhf python3-lazr.uri all 1.0.6-7 [13.8 kB] 501s Get:84 http://ftpmaster.internal/ubuntu resolute/main armhf python3-markupsafe armhf 2.1.5-1build5 [13.3 kB] 501s Get:85 http://ftpmaster.internal/ubuntu resolute/main armhf python3-openssl all 25.1.0-1 [46.4 kB] 501s Get:86 http://ftpmaster.internal/ubuntu resolute/main armhf python3-pyparsing all 3.1.3-1 [87.0 kB] 501s Get:87 http://ftpmaster.internal/ubuntu resolute/main armhf python3-zipp all 3.23.0-1 [10.4 kB] 501s Get:88 http://ftpmaster.internal/ubuntu resolute/main armhf python3-bcrypt armhf 4.3.0-2 [251 kB] 502s Preconfiguring packages ... 502s Fetched 26.1 MB in 4s (7124 kB/s) 502s (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.) 502s Preparing to unpack .../base-files_14ubuntu4_armhf.deb ... 503s Unpacking base-files (14ubuntu4) over (14ubuntu3) ... 503s Setting up base-files (14ubuntu4) ... 503s Installing new version of config file /etc/issue ... 503s Installing new version of config file /etc/issue.net ... 503s Installing new version of config file /etc/lsb-release ... 504s motd-news.service is a disabled or a static unit not running, not starting it. 504s (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.) 504s Preparing to unpack .../libatomic1_15.2.0-5ubuntu1_armhf.deb ... 504s Unpacking libatomic1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 504s Preparing to unpack .../gcc-15-base_15.2.0-5ubuntu1_armhf.deb ... 504s Unpacking gcc-15-base:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 504s Setting up gcc-15-base:armhf (15.2.0-5ubuntu1) ... 504s (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.) 504s Preparing to unpack .../libgcc-s1_15.2.0-5ubuntu1_armhf.deb ... 504s Unpacking libgcc-s1:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 504s Setting up libgcc-s1:armhf (15.2.0-5ubuntu1) ... 504s (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.) 504s Preparing to unpack .../libstdc++6_15.2.0-5ubuntu1_armhf.deb ... 504s Unpacking libstdc++6:armhf (15.2.0-5ubuntu1) over (15.2.0-4ubuntu4) ... 504s Setting up libstdc++6:armhf (15.2.0-5ubuntu1) ... 504s (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.) 504s Preparing to unpack .../libapt-pkg7.0_3.1.11_armhf.deb ... 504s Unpacking libapt-pkg7.0:armhf (3.1.11) over (3.1.6ubuntu2) ... 504s Setting up libapt-pkg7.0:armhf (3.1.11) ... 504s (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.) 504s Preparing to unpack .../dpkg_1.22.21ubuntu4_armhf.deb ... 504s Unpacking dpkg (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 505s Setting up dpkg (1.22.21ubuntu4) ... 505s (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.) 505s Preparing to unpack .../eject_2.41.2-4ubuntu1_armhf.deb ... 505s Unpacking eject (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 505s Preparing to unpack .../fdisk_2.41.2-4ubuntu1_armhf.deb ... 505s Unpacking fdisk (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 505s Preparing to unpack .../libblkid1_2.41.2-4ubuntu1_armhf.deb ... 505s Unpacking libblkid1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 505s Setting up libblkid1:armhf (2.41.2-4ubuntu1) ... 506s (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.) 506s Preparing to unpack .../libmount1_2.41.2-4ubuntu1_armhf.deb ... 506s Unpacking libmount1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 506s Setting up libmount1:armhf (2.41.2-4ubuntu1) ... 506s (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.) 506s Preparing to unpack .../libsmartcols1_2.41.2-4ubuntu1_armhf.deb ... 506s Unpacking libsmartcols1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 506s Setting up libsmartcols1:armhf (2.41.2-4ubuntu1) ... 506s (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.) 506s Preparing to unpack .../mount_2.41.2-4ubuntu1_armhf.deb ... 506s Unpacking mount (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 506s Preparing to unpack .../uuid-runtime_2.41.2-4ubuntu1_armhf.deb ... 506s Unpacking uuid-runtime (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 506s Preparing to unpack .../libuuid1_2.41.2-4ubuntu1_armhf.deb ... 506s Unpacking libuuid1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 506s Setting up libuuid1:armhf (2.41.2-4ubuntu1) ... 506s (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.) 506s Preparing to unpack .../libfdisk1_2.41.2-4ubuntu1_armhf.deb ... 506s Unpacking libfdisk1:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 506s Preparing to unpack .../bsdutils_1%3a2.41.2-4ubuntu1_armhf.deb ... 506s Unpacking bsdutils (1:2.41.2-4ubuntu1) over (1:2.41-4ubuntu4) ... 506s Setting up bsdutils (1:2.41.2-4ubuntu1) ... 506s (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.) 506s Preparing to unpack .../util-linux_2.41.2-4ubuntu1_armhf.deb ... 506s Unpacking util-linux (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 507s Setting up util-linux (2.41.2-4ubuntu1) ... 507s fstrim.service is a disabled or a static unit not running, not starting it. 507s (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.) 507s Preparing to unpack .../bsdextrautils_2.41.2-4ubuntu1_armhf.deb ... 507s Unpacking bsdextrautils (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 508s Preparing to unpack .../libselinux1_3.8.1-1build2_armhf.deb ... 508s Unpacking libselinux1:armhf (3.8.1-1build2) over (3.8.1-1build1) ... 508s Setting up libselinux1:armhf (3.8.1-1build2) ... 508s (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.) 508s Preparing to unpack .../libseccomp2_2.6.0-2ubuntu3_armhf.deb ... 508s Unpacking libseccomp2:armhf (2.6.0-2ubuntu3) over (2.6.0-2ubuntu2) ... 508s Setting up libseccomp2:armhf (2.6.0-2ubuntu3) ... 508s (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.) 508s Preparing to unpack .../archives/apt_3.1.11_armhf.deb ... 508s Unpacking apt (3.1.11) over (3.1.6ubuntu2) ... 508s Setting up apt (3.1.11) ... 508s Installing new version of config file /etc/apt/apt.conf.d/01-vendor-ubuntu ... 509s (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.) 509s Preparing to unpack .../gnu-coreutils_9.7-3ubuntu1_armhf.deb ... 509s Unpacking gnu-coreutils (9.7-3ubuntu1) over (9.5-1ubuntu4) ... 509s Setting up gnu-coreutils (9.7-3ubuntu1) ... 510s (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.) 510s Preparing to unpack .../libaudit-common_1%3a4.0.5-1build2_all.deb ... 510s Unpacking libaudit-common (1:4.0.5-1build2) over (1:4.0.5-1build1) ... 510s Setting up libaudit-common (1:4.0.5-1build2) ... 510s (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.) 510s Preparing to unpack .../libcap-ng0_0.8.5-4build3_armhf.deb ... 510s Unpacking libcap-ng0:armhf (0.8.5-4build3) over (0.8.5-4build2) ... 510s Setting up libcap-ng0:armhf (0.8.5-4build3) ... 510s (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.) 510s Preparing to unpack .../libaudit1_1%3a4.0.5-1build2_armhf.deb ... 510s Unpacking libaudit1:armhf (1:4.0.5-1build2) over (1:4.0.5-1build1) ... 510s Setting up libaudit1:armhf (1:4.0.5-1build2) ... 510s (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.) 510s Preparing to unpack .../0-login_1%3a4.16.0-2+really2.41.2-4ubuntu1_armhf.deb ... 510s Unpacking login (1:4.16.0-2+really2.41.2-4ubuntu1) over (1:4.16.0-2+really2.41-4ubuntu4) ... 510s Preparing to unpack .../1-python3.13_3.13.9-1_armhf.deb ... 510s Unpacking python3.13 (3.13.9-1) over (3.13.7-1) ... 510s Preparing to unpack .../2-python3.13-minimal_3.13.9-1_armhf.deb ... 510s Unpacking python3.13-minimal (3.13.9-1) over (3.13.7-1) ... 510s Preparing to unpack .../3-libpython3.13-stdlib_3.13.9-1_armhf.deb ... 511s Unpacking libpython3.13-stdlib:armhf (3.13.9-1) over (3.13.7-1) ... 511s Preparing to unpack .../4-libpython3.13-minimal_3.13.9-1_armhf.deb ... 511s Unpacking libpython3.13-minimal:armhf (3.13.9-1) over (3.13.7-1) ... 511s Preparing to unpack .../5-tzdata_2025b-5ubuntu1_all.deb ... 511s Unpacking tzdata (2025b-5ubuntu1) over (2025b-3ubuntu1) ... 511s Preparing to unpack .../6-liblastlog2-2_2.41.2-4ubuntu1_armhf.deb ... 511s Unpacking liblastlog2-2:armhf (2.41.2-4ubuntu1) over (2.41-4ubuntu4) ... 511s Setting up liblastlog2-2:armhf (2.41.2-4ubuntu1) ... 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 ... 61041 files and directories currently installed.) 511s Preparing to unpack .../libsemanage-common_3.8.1-1build1_all.deb ... 511s Unpacking libsemanage-common (3.8.1-1build1) over (3.8.1-1) ... 511s Setting up libsemanage-common (3.8.1-1build1) ... 512s (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.) 512s Preparing to unpack .../libsemanage2_3.8.1-1build1_armhf.deb ... 512s Unpacking libsemanage2:armhf (3.8.1-1build1) over (3.8.1-1) ... 512s Setting up libsemanage2:armhf (3.8.1-1build1) ... 512s (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.) 512s Preparing to unpack .../00-distro-info-data_0.68_all.deb ... 512s Unpacking distro-info-data (0.68) over (0.66) ... 512s Preparing to unpack .../01-gir1.2-girepository-2.0_1.86.0-6_armhf.deb ... 512s Unpacking gir1.2-girepository-2.0:armhf (1.86.0-6) over (1.84.0-1) ... 512s Preparing to unpack .../02-gir1.2-glib-2.0_2.86.1-1_armhf.deb ... 512s Unpacking gir1.2-glib-2.0:armhf (2.86.1-1) over (2.86.0-2) ... 512s Preparing to unpack .../03-libglib2.0-0t64_2.86.1-1_armhf.deb ... 512s Unpacking libglib2.0-0t64:armhf (2.86.1-1) over (2.86.0-2) ... 512s Preparing to unpack .../04-libgirepository-1.0-1_1.86.0-6_armhf.deb ... 512s Unpacking libgirepository-1.0-1:armhf (1.86.0-6) over (1.84.0-1) ... 512s Preparing to unpack .../05-libapparmor1_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 512s Unpacking libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 512s Preparing to unpack .../06-libelf1t64_0.193-3_armhf.deb ... 512s Unpacking libelf1t64:armhf (0.193-3) over (0.193-1) ... 512s Preparing to unpack .../07-libglib2.0-data_2.86.1-1_all.deb ... 512s Unpacking libglib2.0-data (2.86.1-1) over (2.86.0-2) ... 512s Preparing to unpack .../08-libjson-c5_0.18+ds-1.1_armhf.deb ... 512s Unpacking libjson-c5:armhf (0.18+ds-1.1) over (0.18+ds-1) ... 512s Preparing to unpack .../09-libnewt0.52_0.52.25-1ubuntu2_armhf.deb ... 512s Unpacking libnewt0.52:armhf (0.52.25-1ubuntu2) over (0.52.25-1ubuntu1) ... 512s Preparing to unpack .../10-libp11-kit0_0.25.9-2_armhf.deb ... 512s Unpacking libp11-kit0:armhf (0.25.9-2) over (0.25.5-3ubuntu1) ... 512s Preparing to unpack .../11-libxml2-16_2.14.5+dfsg-0.2build1_armhf.deb ... 512s Unpacking libxml2-16:armhf (2.14.5+dfsg-0.2build1) over (2.14.5+dfsg-0.2) ... 512s Preparing to unpack .../12-python-apt-common_3.0.0ubuntu2_all.deb ... 512s Unpacking python-apt-common (3.0.0ubuntu2) over (3.0.0ubuntu1) ... 512s Preparing to unpack .../13-python3-apt_3.0.0ubuntu2_armhf.deb ... 513s Unpacking python3-apt (3.0.0ubuntu2) over (3.0.0ubuntu1) ... 513s Preparing to unpack .../14-python3-cffi-backend_2.0.0-2_armhf.deb ... 513s Unpacking python3-cffi-backend:armhf (2.0.0-2) over (1.17.1-3) ... 513s Preparing to unpack .../15-python3-dbus_1.4.0-1build1_armhf.deb ... 513s Unpacking python3-dbus (1.4.0-1build1) over (1.4.0-1) ... 513s Preparing to unpack .../16-python3-yaml_6.0.2-2_armhf.deb ... 513s Unpacking python3-yaml (6.0.2-2) over (6.0.2-1build2) ... 513s Preparing to unpack .../17-sudo-rs_0.2.8-1ubuntu5.1_armhf.deb ... 513s Unpacking sudo-rs (0.2.8-1ubuntu5.1) over (0.2.8-1ubuntu5) ... 514s Preparing to unpack .../18-whiptail_0.52.25-1ubuntu2_armhf.deb ... 514s Unpacking whiptail (0.52.25-1ubuntu2) over (0.52.25-1ubuntu1) ... 514s Preparing to unpack .../19-apparmor_5.0.0~alpha1-0ubuntu8.1_armhf.deb ... 516s Unpacking apparmor (5.0.0~alpha1-0ubuntu8.1) over (5.0.0~alpha1-0ubuntu8) ... 517s Preparing to unpack .../20-bind9-dnsutils_1%3a9.20.11-1ubuntu3_armhf.deb ... 517s Unpacking bind9-dnsutils (1:9.20.11-1ubuntu3) over (1:9.20.11-1ubuntu2) ... 517s Preparing to unpack .../21-bind9-host_1%3a9.20.11-1ubuntu3_armhf.deb ... 517s Unpacking bind9-host (1:9.20.11-1ubuntu3) over (1:9.20.11-1ubuntu2) ... 517s Preparing to unpack .../22-bind9-libs_1%3a9.20.11-1ubuntu3_armhf.deb ... 517s Unpacking bind9-libs:armhf (1:9.20.11-1ubuntu3) over (1:9.20.11-1ubuntu2) ... 517s Preparing to unpack .../23-libdrm-common_2.4.127-1ubuntu1_all.deb ... 517s Unpacking libdrm-common (2.4.127-1ubuntu1) over (2.4.125-1) ... 517s Preparing to unpack .../24-libdrm2_2.4.127-1ubuntu1_armhf.deb ... 517s Unpacking libdrm2:armhf (2.4.127-1ubuntu1) over (2.4.125-1) ... 517s Preparing to unpack .../25-nftables_1.1.5-2_armhf.deb ... 517s Unpacking nftables (1.1.5-2) over (1.1.5-1) ... 517s Preparing to unpack .../26-libnftables1_1.1.5-2_armhf.deb ... 517s Unpacking libnftables1:armhf (1.1.5-2) over (1.1.5-1) ... 517s Preparing to unpack .../27-python3.13-gdbm_3.13.9-1_armhf.deb ... 517s Unpacking python3.13-gdbm (3.13.9-1) over (3.13.7-1) ... 517s Selecting previously unselected package python3.14-gdbm. 517s Preparing to unpack .../28-python3.14-gdbm_3.14.0-4_armhf.deb ... 517s Unpacking python3.14-gdbm (3.14.0-4) ... 517s Preparing to unpack .../29-python3-gdbm_3.13.9-1_armhf.deb ... 517s Unpacking python3-gdbm:armhf (3.13.9-1) over (3.13.5-1) ... 517s Preparing to unpack .../30-libctf0_2.45-8ubuntu1_armhf.deb ... 517s Unpacking libctf0:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 518s Preparing to unpack .../31-libctf-nobfd0_2.45-8ubuntu1_armhf.deb ... 518s Unpacking libctf-nobfd0:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 518s Preparing to unpack .../32-binutils-arm-linux-gnueabihf_2.45-8ubuntu1_armhf.deb ... 518s Unpacking binutils-arm-linux-gnueabihf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 518s Preparing to unpack .../33-libbinutils_2.45-8ubuntu1_armhf.deb ... 518s Unpacking libbinutils:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 518s Preparing to unpack .../34-binutils_2.45-8ubuntu1_armhf.deb ... 518s Unpacking binutils (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 518s Preparing to unpack .../35-binutils-common_2.45-8ubuntu1_armhf.deb ... 518s Unpacking binutils-common:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 518s Preparing to unpack .../36-libsframe2_2.45-8ubuntu1_armhf.deb ... 518s Unpacking libsframe2:armhf (2.45-8ubuntu1) over (2.45-7ubuntu1) ... 518s Preparing to unpack .../37-cloud-init-base_25.4~1gcb12e00e-0ubuntu1_all.deb ... 518s Unpacking cloud-init-base (25.4~1gcb12e00e-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 519s Preparing to unpack .../38-cloud-init_25.4~1gcb12e00e-0ubuntu1_all.deb ... 519s Unpacking cloud-init (25.4~1gcb12e00e-0ubuntu1) over (25.3~2g890873f5-0ubuntu2) ... 519s Preparing to unpack .../39-python3-blinker_1.9.0-2_all.deb ... 519s Unpacking python3-blinker (1.9.0-2) over (1.9.0-1) ... 519s Preparing to unpack .../40-python3-jwt_2.10.1-3_all.deb ... 519s Unpacking python3-jwt (2.10.1-3) over (2.10.1-2) ... 519s Preparing to unpack .../41-python3-oauthlib_3.3.1-1_all.deb ... 519s Unpacking python3-oauthlib (3.3.1-1) over (3.2.2-3) ... 519s Preparing to unpack .../42-dpkg-dev_1.22.21ubuntu4_all.deb ... 519s Unpacking dpkg-dev (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 520s Preparing to unpack .../43-libdpkg-perl_1.22.21ubuntu4_all.deb ... 520s Unpacking libdpkg-perl (1.22.21ubuntu4) over (1.22.21ubuntu3) ... 520s Preparing to unpack .../44-lto-disabled-list_71_all.deb ... 520s Unpacking lto-disabled-list (71) over (69) ... 520s Preparing to unpack .../45-libbrotli1_1.1.0-2build6_armhf.deb ... 520s Unpacking libbrotli1:armhf (1.1.0-2build6) over (1.1.0-2build5) ... 520s Preparing to unpack .../46-python3-inflect_7.5.0-1_all.deb ... 520s Unpacking python3-inflect (7.5.0-1) over (7.3.1-2) ... 520s Preparing to unpack .../47-python3-lazr.uri_1.0.6-7_all.deb ... 520s Unpacking python3-lazr.uri (1.0.6-7) over (1.0.6-6) ... 520s Preparing to unpack .../48-python3-markupsafe_2.1.5-1build5_armhf.deb ... 520s Unpacking python3-markupsafe (2.1.5-1build5) over (2.1.5-1build4) ... 520s Preparing to unpack .../49-python3-openssl_25.1.0-1_all.deb ... 521s Unpacking python3-openssl (25.1.0-1) over (25.0.0-1) ... 521s Preparing to unpack .../50-python3-pyparsing_3.1.3-1_all.deb ... 521s Unpacking python3-pyparsing (3.1.3-1) over (3.1.2-1) ... 521s Preparing to unpack .../51-python3-zipp_3.23.0-1_all.deb ... 521s Unpacking python3-zipp (3.23.0-1) over (3.21.0-1) ... 521s Preparing to unpack .../52-python3-bcrypt_4.3.0-2_armhf.deb ... 521s Unpacking python3-bcrypt (4.3.0-2) over (4.2.0-2.1build1) ... 521s Setting up lto-disabled-list (71) ... 521s Setting up libapparmor1:armhf (5.0.0~alpha1-0ubuntu8.1) ... 521s Setting up libnewt0.52:armhf (0.52.25-1ubuntu2) ... 521s Setting up libnftables1:armhf (1.1.5-2) ... 521s Setting up nftables (1.1.5-2) ... 522s Setting up bsdextrautils (2.41.2-4ubuntu1) ... 522s Setting up python3-jwt (2.10.1-3) ... 522s Setting up distro-info-data (0.68) ... 522s Setting up libxml2-16:armhf (2.14.5+dfsg-0.2build1) ... 522s Setting up libsframe2:armhf (2.45-8ubuntu1) ... 522s Setting up python3-openssl (25.1.0-1) ... 522s Setting up python3-bcrypt (4.3.0-2) ... 522s Setting up libbrotli1:armhf (1.1.0-2build6) ... 522s Setting up binutils-common:armhf (2.45-8ubuntu1) ... 522s Setting up libctf-nobfd0:armhf (2.45-8ubuntu1) ... 522s Setting up python3-yaml (6.0.2-2) ... 523s Setting up python3-lazr.uri (1.0.6-7) ... 523s Setting up python3-zipp (3.23.0-1) ... 523s Setting up python3-markupsafe (2.1.5-1build5) ... 523s Setting up libelf1t64:armhf (0.193-3) ... 523s Setting up tzdata (2025b-5ubuntu1) ... 523s 523s Current default time zone: 'Etc/UTC' 523s Local time is now: Wed Oct 29 15:15:00 UTC 2025. 523s Universal Time is now: Wed Oct 29 15:15:00 UTC 2025. 523s Run 'dpkg-reconfigure tzdata' if you wish to change it. 523s 524s Setting up eject (2.41.2-4ubuntu1) ... 524s Setting up libpython3.13-minimal:armhf (3.13.9-1) ... 524s Setting up apparmor (5.0.0~alpha1-0ubuntu8.1) ... 524s Installing new version of config file /etc/apparmor.d/fusermount3 ... 524s apparmor_parser: Unable to replace "lsb_release". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 524s 524s apparmor_parser: Unable to replace "kmod". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 524s 524s apparmor_parser: Unable to replace "nvidia_modprobe". apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 524s 526s Reloading AppArmor profiles 526s /sbin/apparmor_parser: Unable to replace "1password". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "Discord". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "MongoDB Compass". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "balena-etcher". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "brave". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "buildah". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "cam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "ch-checkns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "bwrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "ch-run". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "chrome". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "babeld". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "bfdd". /sbin/apparmor_parser: Unable to replace "vscode". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "chromium". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "crun". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "devhelp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "alsamixer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "bgpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "epiphany". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "element-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "evolution". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "firefox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "flatpak". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "geary". /sbin/apparmor_parser: Unable to replace "dnstracer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "foliate". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "github-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "eigrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "goldendict". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "fabricd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "dig". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "hostname". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "iotop-c". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "kchmviewer". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "keybase". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "fusermount3". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "lc-compliance". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "isisd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "libcamerify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "linux-sandbox". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "ldpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "john". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "loupe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "ipa_verify". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "compressor". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "locale". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "linux-boot-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "lxc-attach". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "lxc-create". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "gs". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "Xorg". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "lxc-destroy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "lxc-execute". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "lxc-stop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "lxc-unshare". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "lxc-usernsexec". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "mmdebstrap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "irssi". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "msedge". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "lsblk". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "lsusb". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "notepadqq". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "lsb_release". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "obsidian". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "mosquitto". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "opam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "opera". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "mbsync". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "nslookup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "nhrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "pageedit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "notify-send". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "nc.openbsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "kmod". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "nvidia_modprobe". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "ospfd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "ospf6d". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "pathd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "podman". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "polypane". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "os-prober". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "privacybrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "pim6d". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "qcam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "qmapshack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "QtWebEngineProcess". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "plasmashell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "qutebrowser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "pbrd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "rootlesskit". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "pimd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "rpm". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "rssguard". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "runc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "sbuild". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "sbuild-abort". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "qpdf". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "ripd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "sbuild-adduser". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "sbuild-apt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "ripngd". /sbin/apparmor_parser: Unable to replace "sbuild-clean". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "sbuild-checkpackages". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "sbuild-createchroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "sbuild-destroychroot". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "sbuild-distupgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "sbuild-hold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "sbuild-shell". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "sbuild-unhold". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "scide". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "openvpn". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "sbuild-upgrade". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "signal-desktop". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "sbuild-update". /sbin/apparmor_parser: Unable to replace "slack". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "slirp4netns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "surfshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "stress-ng". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "systemd-coredump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "steam". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "thunderbird". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "ssh-keyscan". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "systemd-detect-virt". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "staticd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "trinity". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "proftpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "tup". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "tuxedo-control-center". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "tinyproxy". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "unprivileged_userns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "userbindmount". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "unix-chkpwd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "mx-extract". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "rygel". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "/usr/bin/man". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_apt_news". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "uwsgi-core". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "vdens". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "virtiofsd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "vivaldi-bin". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "vpnns". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "/usr/sbin/chronyd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "cmds". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "tnftp". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "vrrpd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "wg". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "rsyslogd". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "wike". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "wpcom". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "dumpcap". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "tshark". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "who". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "ip". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "wg-quick". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "znc". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "tcpdump". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "apt_methods". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "ubuntu_pro_esm_cache". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s /sbin/apparmor_parser: Unable to replace "transmission-cli". /sbin/apparmor_parser: Access denied. You need policy admin privileges to manage profiles. 526s 526s Error: At least one profile failed to load 526s Setting up python3-inflect (7.5.0-1) ... 527s Setting up libglib2.0-data (2.86.1-1) ... 527s Setting up python3-pyparsing (3.1.3-1) ... 527s Setting up python3.14-gdbm (3.14.0-4) ... 527s Setting up libp11-kit0:armhf (0.25.9-2) ... 527s Setting up libatomic1:armhf (15.2.0-5ubuntu1) ... 527s Setting up libdpkg-perl (1.22.21ubuntu4) ... 527s Setting up libfdisk1:armhf (2.41.2-4ubuntu1) ... 527s Setting up whiptail (0.52.25-1ubuntu2) ... 527s Setting up python-apt-common (3.0.0ubuntu2) ... 527s Setting up mount (2.41.2-4ubuntu1) ... 527s Setting up uuid-runtime (2.41.2-4ubuntu1) ... 528s uuidd.service is a disabled or a static unit not running, not starting it. 528s Setting up python3.13-minimal (3.13.9-1) ... 529s Setting up libbinutils:armhf (2.45-8ubuntu1) ... 529s Setting up libdrm-common (2.4.127-1ubuntu1) ... 529s Setting up libpython3.13-stdlib:armhf (3.13.9-1) ... 529s Setting up libjson-c5:armhf (0.18+ds-1.1) ... 529s Setting up sudo-rs (0.2.8-1ubuntu5.1) ... 529s Setting up python3-cffi-backend:armhf (2.0.0-2) ... 529s Setting up python3.13-gdbm (3.13.9-1) ... 529s Setting up login (1:4.16.0-2+really2.41.2-4ubuntu1) ... 530s Setting up python3-blinker (1.9.0-2) ... 530s Setting up libctf0:armhf (2.45-8ubuntu1) ... 530s Setting up bind9-libs:armhf (1:9.20.11-1ubuntu3) ... 530s Setting up python3.13 (3.13.9-1) ... 531s Setting up python3-gdbm:armhf (3.13.9-1) ... 531s Setting up python3-apt (3.0.0ubuntu2) ... 532s Setting up fdisk (2.41.2-4ubuntu1) ... 532s Setting up libglib2.0-0t64:armhf (2.86.1-1) ... 532s No schema files found: doing nothing. 532s Setting up python3-oauthlib (3.3.1-1) ... 532s Setting up gir1.2-glib-2.0:armhf (2.86.1-1) ... 532s Setting up libdrm2:armhf (2.4.127-1ubuntu1) ... 532s Setting up libgirepository-1.0-1:armhf (1.86.0-6) ... 532s Setting up bind9-host (1:9.20.11-1ubuntu3) ... 532s Setting up binutils-arm-linux-gnueabihf (2.45-8ubuntu1) ... 532s Setting up python3-dbus (1.4.0-1build1) ... 532s Setting up binutils (2.45-8ubuntu1) ... 532s Setting up cloud-init-base (25.4~1gcb12e00e-0ubuntu1) ... 532s Encountered debconf setting for cloud-init-base/datasources. 535s Setting up dpkg-dev (1.22.21ubuntu4) ... 535s Setting up gir1.2-girepository-2.0:armhf (1.86.0-6) ... 535s Setting up bind9-dnsutils (1:9.20.11-1ubuntu3) ... 535s Setting up cloud-init (25.4~1gcb12e00e-0ubuntu1) ... 535s Processing triggers for rsyslog (8.2504.0-1ubuntu2) ... 535s Processing triggers for systemd (257.9-0ubuntu2) ... 535s Processing triggers for man-db (2.13.1-1) ... 537s Processing triggers for plymouth-theme-ubuntu-text (24.004.60+git20250831.4a3c171d-0ubuntu1) ... 537s Processing triggers for procps (2:4.0.4-8ubuntu3) ... 537s Processing triggers for install-info (7.1.1-1ubuntu1) ... 537s Processing triggers for libc-bin (2.42-0ubuntu3) ... 541s Reading package lists... 542s Building dependency tree... 542s Reading state information... 542s Solving dependencies... 543s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 545s autopkgtest [15:15:22]: rebooting testbed after setup commands that affected boot 611s Reading package lists... 612s Building dependency tree... 612s Reading state information... 612s Solving dependencies... 613s The following NEW packages will be installed: 613s autodep8 dctrl-tools javascript-common libautovivification-perl 613s libb-hooks-endofscope-perl libb-hooks-op-check-perl libbuiltin-compat-perl 613s libclass-inspector-perl libclass-method-modifiers-perl 613s libclass-xsaccessor-perl libcpanel-json-xs-perl libdata-optlist-perl 613s libdevel-callchecker-perl libdynaloader-functions-perl libexporter-tiny-perl 613s libfeature-compat-try-perl libfile-sharedir-perl 613s libgetopt-long-descriptive-perl libimport-into-perl libio-stringy-perl 613s libjs-bootstrap5 libjs-highlight.js libjs-popper.js 613s libjson-schema-modern-perl libmodule-implementation-perl 613s libmodule-runtime-perl libmojolicious-perl libmoo-perl libmoox-typetiny-perl 613s libnamespace-clean-perl libpackage-stash-perl libparams-classify-perl 613s libparams-util-perl libparams-validate-perl libpath-tiny-perl 613s libref-util-perl librole-tiny-perl libsafe-isa-perl libstrictures-perl 613s libsub-exporter-perl libsub-exporter-progressive-perl libsub-identify-perl 613s libsub-install-perl libsub-name-perl libsub-quote-perl 613s libsyntax-keyword-try-perl libtry-tiny-perl libtype-tiny-perl 613s libvariable-magic-perl libxs-parse-keyword-perl node-popper2 613s pkg-perl-autopkgtest 614s 0 upgraded, 52 newly installed, 0 to remove and 0 not upgraded. 614s Need to get 3324 kB of archives. 614s After this operation, 17.4 MB of additional disk space will be used. 614s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf dctrl-tools armhf 2.24-3build3 [94.7 kB] 614s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf autodep8 all 0.30 [13.7 kB] 614s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf javascript-common all 12+nmu1 [4828 B] 614s Get:4 http://ftpmaster.internal/ubuntu resolute/universe armhf libautovivification-perl armhf 0.18-2build5 [20.8 kB] 614s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libb-hooks-op-check-perl armhf 0.22-3build2 [9174 B] 614s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libdynaloader-functions-perl all 0.004-2 [11.5 kB] 614s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf libdevel-callchecker-perl armhf 0.009-2 [13.8 kB] 614s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf libparams-classify-perl armhf 0.015-2build6 [18.8 kB] 614s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf libmodule-runtime-perl all 0.018-1 [15.2 kB] 614s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf libtry-tiny-perl all 0.32-1 [21.2 kB] 614s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libmodule-implementation-perl all 0.09-2 [12.0 kB] 614s Get:12 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-exporter-progressive-perl all 0.001013-3 [6718 B] 614s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf libvariable-magic-perl armhf 0.64-1build1 [33.4 kB] 614s Get:14 http://ftpmaster.internal/ubuntu resolute/main armhf libb-hooks-endofscope-perl all 0.28-2 [15.8 kB] 614s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf libpackage-stash-perl all 0.40-1 [19.5 kB] 614s Get:16 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-identify-perl armhf 0.14-3build4 [9396 B] 614s Get:17 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-name-perl armhf 0.28-1 [10.0 kB] 614s Get:18 http://ftpmaster.internal/ubuntu resolute/main armhf libnamespace-clean-perl all 0.27-2 [14.0 kB] 614s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf libbuiltin-compat-perl all 0.003003-2 [6956 B] 614s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-inspector-perl all 1.36-3 [15.4 kB] 614s Get:21 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-method-modifiers-perl all 2.15-1 [16.1 kB] 614s Get:22 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-xsaccessor-perl armhf 1.19-4build6 [32.4 kB] 614s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf libcpanel-json-xs-perl armhf 4.39-2 [114 kB] 614s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf libparams-util-perl armhf 1.102-3build1 [20.5 kB] 614s Get:25 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-install-perl all 0.929-1 [9764 B] 614s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf libdata-optlist-perl all 0.114-1 [9708 B] 614s Get:27 http://ftpmaster.internal/ubuntu resolute/main armhf libexporter-tiny-perl all 1.006002-1 [36.8 kB] 614s Get:28 http://ftpmaster.internal/ubuntu resolute/main armhf libfile-sharedir-perl all 1.118-3 [14.0 kB] 614s Get:29 http://ftpmaster.internal/ubuntu resolute/main armhf libxs-parse-keyword-perl armhf 0.48-2 [59.3 kB] 614s Get:30 http://ftpmaster.internal/ubuntu resolute/main armhf libsyntax-keyword-try-perl armhf 0.30-1 [24.0 kB] 614s Get:31 http://ftpmaster.internal/ubuntu resolute/universe armhf libfeature-compat-try-perl all 0.05-1 [9998 B] 614s Get:32 http://ftpmaster.internal/ubuntu resolute/main armhf libio-stringy-perl all 2.113-2 [45.3 kB] 614s Get:33 http://ftpmaster.internal/ubuntu resolute/universe armhf libparams-validate-perl armhf 1.31-2build4 [52.9 kB] 614s Get:34 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-exporter-perl all 0.990-1 [49.0 kB] 614s Get:35 http://ftpmaster.internal/ubuntu resolute/universe armhf libgetopt-long-descriptive-perl all 0.116-2 [25.0 kB] 614s Get:36 http://ftpmaster.internal/ubuntu resolute/main armhf libimport-into-perl all 1.002005-2 [10.7 kB] 614s Get:37 http://ftpmaster.internal/ubuntu resolute/universe armhf node-popper2 all 2.11.2-9 [106 kB] 614s Get:38 http://ftpmaster.internal/ubuntu resolute/universe armhf libjs-bootstrap5 all 5.3.5+dfsg-4 [479 kB] 614s Get:39 http://ftpmaster.internal/ubuntu resolute/universe armhf libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 614s Get:40 http://ftpmaster.internal/ubuntu resolute/universe armhf libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 614s Get:41 http://ftpmaster.internal/ubuntu resolute/universe armhf libmojolicious-perl all 9.39+dfsg-1 [761 kB] 615s Get:42 http://ftpmaster.internal/ubuntu resolute/main armhf librole-tiny-perl all 2.002004-1 [16.3 kB] 615s Get:43 http://ftpmaster.internal/ubuntu resolute/main armhf libsub-quote-perl all 2.006008-1ubuntu1 [20.7 kB] 615s Get:44 http://ftpmaster.internal/ubuntu resolute/main armhf libmoo-perl all 2.005005-1 [47.4 kB] 615s Get:45 http://ftpmaster.internal/ubuntu resolute/universe armhf libtype-tiny-perl all 2.004000-2 [340 kB] 615s Get:46 http://ftpmaster.internal/ubuntu resolute/universe armhf libmoox-typetiny-perl all 0.002003-4 [5930 B] 615s Get:47 http://ftpmaster.internal/ubuntu resolute/main armhf libpath-tiny-perl all 0.148-1 [47.9 kB] 615s Get:48 http://ftpmaster.internal/ubuntu resolute/universe armhf libref-util-perl all 0.204-2 [15.1 kB] 615s Get:49 http://ftpmaster.internal/ubuntu resolute/universe armhf libsafe-isa-perl all 1.000010-1 [7684 B] 615s Get:50 http://ftpmaster.internal/ubuntu resolute/main armhf libstrictures-perl all 2.000006-1 [16.3 kB] 615s Get:51 http://ftpmaster.internal/ubuntu resolute/universe armhf libjson-schema-modern-perl all 0.611-1 [106 kB] 615s Get:52 http://ftpmaster.internal/ubuntu resolute/universe armhf pkg-perl-autopkgtest all 0.82 [18.8 kB] 616s Fetched 3324 kB in 1s (2655 kB/s) 616s Selecting previously unselected package dctrl-tools. 616s (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 ... 61068 files and directories currently installed.) 616s Preparing to unpack .../00-dctrl-tools_2.24-3build3_armhf.deb ... 616s Unpacking dctrl-tools (2.24-3build3) ... 616s Selecting previously unselected package autodep8. 616s Preparing to unpack .../01-autodep8_0.30_all.deb ... 616s Unpacking autodep8 (0.30) ... 616s Selecting previously unselected package javascript-common. 616s Preparing to unpack .../02-javascript-common_12+nmu1_all.deb ... 616s Unpacking javascript-common (12+nmu1) ... 616s Selecting previously unselected package libautovivification-perl:armhf. 616s Preparing to unpack .../03-libautovivification-perl_0.18-2build5_armhf.deb ... 616s Unpacking libautovivification-perl:armhf (0.18-2build5) ... 616s Selecting previously unselected package libb-hooks-op-check-perl:armhf. 616s Preparing to unpack .../04-libb-hooks-op-check-perl_0.22-3build2_armhf.deb ... 616s Unpacking libb-hooks-op-check-perl:armhf (0.22-3build2) ... 616s Selecting previously unselected package libdynaloader-functions-perl. 616s Preparing to unpack .../05-libdynaloader-functions-perl_0.004-2_all.deb ... 616s Unpacking libdynaloader-functions-perl (0.004-2) ... 616s Selecting previously unselected package libdevel-callchecker-perl:armhf. 616s Preparing to unpack .../06-libdevel-callchecker-perl_0.009-2_armhf.deb ... 616s Unpacking libdevel-callchecker-perl:armhf (0.009-2) ... 616s Selecting previously unselected package libparams-classify-perl:armhf. 616s Preparing to unpack .../07-libparams-classify-perl_0.015-2build6_armhf.deb ... 616s Unpacking libparams-classify-perl:armhf (0.015-2build6) ... 616s Selecting previously unselected package libmodule-runtime-perl. 616s Preparing to unpack .../08-libmodule-runtime-perl_0.018-1_all.deb ... 616s Unpacking libmodule-runtime-perl (0.018-1) ... 616s Selecting previously unselected package libtry-tiny-perl. 616s Preparing to unpack .../09-libtry-tiny-perl_0.32-1_all.deb ... 616s Unpacking libtry-tiny-perl (0.32-1) ... 616s Selecting previously unselected package libmodule-implementation-perl. 616s Preparing to unpack .../10-libmodule-implementation-perl_0.09-2_all.deb ... 616s Unpacking libmodule-implementation-perl (0.09-2) ... 616s Selecting previously unselected package libsub-exporter-progressive-perl. 616s Preparing to unpack .../11-libsub-exporter-progressive-perl_0.001013-3_all.deb ... 616s Unpacking libsub-exporter-progressive-perl (0.001013-3) ... 616s Selecting previously unselected package libvariable-magic-perl. 616s Preparing to unpack .../12-libvariable-magic-perl_0.64-1build1_armhf.deb ... 616s Unpacking libvariable-magic-perl (0.64-1build1) ... 616s Selecting previously unselected package libb-hooks-endofscope-perl. 616s Preparing to unpack .../13-libb-hooks-endofscope-perl_0.28-2_all.deb ... 616s Unpacking libb-hooks-endofscope-perl (0.28-2) ... 616s Selecting previously unselected package libpackage-stash-perl. 616s Preparing to unpack .../14-libpackage-stash-perl_0.40-1_all.deb ... 616s Unpacking libpackage-stash-perl (0.40-1) ... 616s Selecting previously unselected package libsub-identify-perl. 616s Preparing to unpack .../15-libsub-identify-perl_0.14-3build4_armhf.deb ... 616s Unpacking libsub-identify-perl (0.14-3build4) ... 617s Selecting previously unselected package libsub-name-perl:armhf. 617s Preparing to unpack .../16-libsub-name-perl_0.28-1_armhf.deb ... 617s Unpacking libsub-name-perl:armhf (0.28-1) ... 617s Selecting previously unselected package libnamespace-clean-perl. 617s Preparing to unpack .../17-libnamespace-clean-perl_0.27-2_all.deb ... 617s Unpacking libnamespace-clean-perl (0.27-2) ... 617s Selecting previously unselected package libbuiltin-compat-perl. 617s Preparing to unpack .../18-libbuiltin-compat-perl_0.003003-2_all.deb ... 617s Unpacking libbuiltin-compat-perl (0.003003-2) ... 617s Selecting previously unselected package libclass-inspector-perl. 617s Preparing to unpack .../19-libclass-inspector-perl_1.36-3_all.deb ... 617s Unpacking libclass-inspector-perl (1.36-3) ... 617s Selecting previously unselected package libclass-method-modifiers-perl. 617s Preparing to unpack .../20-libclass-method-modifiers-perl_2.15-1_all.deb ... 617s Unpacking libclass-method-modifiers-perl (2.15-1) ... 617s Selecting previously unselected package libclass-xsaccessor-perl. 617s Preparing to unpack .../21-libclass-xsaccessor-perl_1.19-4build6_armhf.deb ... 617s Unpacking libclass-xsaccessor-perl (1.19-4build6) ... 617s Selecting previously unselected package libcpanel-json-xs-perl:armhf. 617s Preparing to unpack .../22-libcpanel-json-xs-perl_4.39-2_armhf.deb ... 617s Unpacking libcpanel-json-xs-perl:armhf (4.39-2) ... 617s Selecting previously unselected package libparams-util-perl. 617s Preparing to unpack .../23-libparams-util-perl_1.102-3build1_armhf.deb ... 617s Unpacking libparams-util-perl (1.102-3build1) ... 617s Selecting previously unselected package libsub-install-perl. 617s Preparing to unpack .../24-libsub-install-perl_0.929-1_all.deb ... 617s Unpacking libsub-install-perl (0.929-1) ... 617s Selecting previously unselected package libdata-optlist-perl. 617s Preparing to unpack .../25-libdata-optlist-perl_0.114-1_all.deb ... 617s Unpacking libdata-optlist-perl (0.114-1) ... 617s Selecting previously unselected package libexporter-tiny-perl. 617s Preparing to unpack .../26-libexporter-tiny-perl_1.006002-1_all.deb ... 617s Unpacking libexporter-tiny-perl (1.006002-1) ... 617s Selecting previously unselected package libfile-sharedir-perl. 617s Preparing to unpack .../27-libfile-sharedir-perl_1.118-3_all.deb ... 617s Unpacking libfile-sharedir-perl (1.118-3) ... 617s Selecting previously unselected package libxs-parse-keyword-perl. 617s Preparing to unpack .../28-libxs-parse-keyword-perl_0.48-2_armhf.deb ... 617s Unpacking libxs-parse-keyword-perl (0.48-2) ... 617s Selecting previously unselected package libsyntax-keyword-try-perl. 617s Preparing to unpack .../29-libsyntax-keyword-try-perl_0.30-1_armhf.deb ... 617s Unpacking libsyntax-keyword-try-perl (0.30-1) ... 617s Selecting previously unselected package libfeature-compat-try-perl. 617s Preparing to unpack .../30-libfeature-compat-try-perl_0.05-1_all.deb ... 617s Unpacking libfeature-compat-try-perl (0.05-1) ... 617s Selecting previously unselected package libio-stringy-perl. 617s Preparing to unpack .../31-libio-stringy-perl_2.113-2_all.deb ... 617s Unpacking libio-stringy-perl (2.113-2) ... 617s Selecting previously unselected package libparams-validate-perl:armhf. 617s Preparing to unpack .../32-libparams-validate-perl_1.31-2build4_armhf.deb ... 617s Unpacking libparams-validate-perl:armhf (1.31-2build4) ... 617s Selecting previously unselected package libsub-exporter-perl. 617s Preparing to unpack .../33-libsub-exporter-perl_0.990-1_all.deb ... 617s Unpacking libsub-exporter-perl (0.990-1) ... 618s Selecting previously unselected package libgetopt-long-descriptive-perl. 618s Preparing to unpack .../34-libgetopt-long-descriptive-perl_0.116-2_all.deb ... 618s Unpacking libgetopt-long-descriptive-perl (0.116-2) ... 618s Selecting previously unselected package libimport-into-perl. 618s Preparing to unpack .../35-libimport-into-perl_1.002005-2_all.deb ... 618s Unpacking libimport-into-perl (1.002005-2) ... 618s Selecting previously unselected package node-popper2. 618s Preparing to unpack .../36-node-popper2_2.11.2-9_all.deb ... 618s Unpacking node-popper2 (2.11.2-9) ... 618s Selecting previously unselected package libjs-bootstrap5. 618s Preparing to unpack .../37-libjs-bootstrap5_5.3.5+dfsg-4_all.deb ... 618s Unpacking libjs-bootstrap5 (5.3.5+dfsg-4) ... 618s Selecting previously unselected package libjs-highlight.js. 618s Preparing to unpack .../38-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 618s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 618s Selecting previously unselected package libjs-popper.js. 618s Preparing to unpack .../39-libjs-popper.js_1.16.1+ds-6_all.deb ... 618s Unpacking libjs-popper.js (1.16.1+ds-6) ... 618s Selecting previously unselected package libmojolicious-perl. 618s Preparing to unpack .../40-libmojolicious-perl_9.39+dfsg-1_all.deb ... 618s Unpacking libmojolicious-perl (9.39+dfsg-1) ... 618s Selecting previously unselected package librole-tiny-perl. 618s Preparing to unpack .../41-librole-tiny-perl_2.002004-1_all.deb ... 618s Unpacking librole-tiny-perl (2.002004-1) ... 618s Selecting previously unselected package libsub-quote-perl. 618s Preparing to unpack .../42-libsub-quote-perl_2.006008-1ubuntu1_all.deb ... 618s Unpacking libsub-quote-perl (2.006008-1ubuntu1) ... 618s Selecting previously unselected package libmoo-perl. 618s Preparing to unpack .../43-libmoo-perl_2.005005-1_all.deb ... 618s Unpacking libmoo-perl (2.005005-1) ... 618s Selecting previously unselected package libtype-tiny-perl. 618s Preparing to unpack .../44-libtype-tiny-perl_2.004000-2_all.deb ... 618s Unpacking libtype-tiny-perl (2.004000-2) ... 618s Selecting previously unselected package libmoox-typetiny-perl. 618s Preparing to unpack .../45-libmoox-typetiny-perl_0.002003-4_all.deb ... 618s Unpacking libmoox-typetiny-perl (0.002003-4) ... 618s Selecting previously unselected package libpath-tiny-perl. 618s Preparing to unpack .../46-libpath-tiny-perl_0.148-1_all.deb ... 618s Unpacking libpath-tiny-perl (0.148-1) ... 619s Selecting previously unselected package libref-util-perl. 619s Preparing to unpack .../47-libref-util-perl_0.204-2_all.deb ... 619s Unpacking libref-util-perl (0.204-2) ... 619s Selecting previously unselected package libsafe-isa-perl. 619s Preparing to unpack .../48-libsafe-isa-perl_1.000010-1_all.deb ... 619s Unpacking libsafe-isa-perl (1.000010-1) ... 619s Selecting previously unselected package libstrictures-perl. 619s Preparing to unpack .../49-libstrictures-perl_2.000006-1_all.deb ... 619s Unpacking libstrictures-perl (2.000006-1) ... 619s Selecting previously unselected package libjson-schema-modern-perl. 619s Preparing to unpack .../50-libjson-schema-modern-perl_0.611-1_all.deb ... 619s Unpacking libjson-schema-modern-perl (0.611-1) ... 619s Selecting previously unselected package pkg-perl-autopkgtest. 619s Preparing to unpack .../51-pkg-perl-autopkgtest_0.82_all.deb ... 619s Unpacking pkg-perl-autopkgtest (0.82) ... 619s Setting up javascript-common (12+nmu1) ... 619s Setting up libsafe-isa-perl (1.000010-1) ... 619s Setting up libclass-inspector-perl (1.36-3) ... 619s Setting up libdynaloader-functions-perl (0.004-2) ... 619s Setting up libclass-method-modifiers-perl (2.15-1) ... 619s Setting up libjs-popper.js (1.16.1+ds-6) ... 619s Setting up libsub-identify-perl (0.14-3build4) ... 619s Setting up libcpanel-json-xs-perl:armhf (4.39-2) ... 619s Setting up libio-stringy-perl (2.113-2) ... 619s Setting up libtry-tiny-perl (0.32-1) ... 619s Setting up libsub-install-perl (0.929-1) ... 619s Setting up libautovivification-perl:armhf (0.18-2build5) ... 619s Setting up libref-util-perl (0.204-2) ... 619s Setting up libvariable-magic-perl (0.64-1build1) ... 619s Setting up libb-hooks-op-check-perl:armhf (0.22-3build2) ... 619s Setting up libparams-util-perl (1.102-3build1) ... 619s Setting up libsub-exporter-progressive-perl (0.001013-3) ... 619s Setting up libsub-name-perl:armhf (0.28-1) ... 619s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 619s Setting up node-popper2 (2.11.2-9) ... 619s Setting up libpath-tiny-perl (0.148-1) ... 619s Setting up librole-tiny-perl (2.002004-1) ... 619s Setting up libfile-sharedir-perl (1.118-3) ... 619s Setting up libstrictures-perl (2.000006-1) ... 619s Setting up libsub-quote-perl (2.006008-1ubuntu1) ... 619s Setting up libclass-xsaccessor-perl (1.19-4build6) ... 619s Setting up libexporter-tiny-perl (1.006002-1) ... 619s Setting up libjs-bootstrap5 (5.3.5+dfsg-4) ... 619s Setting up dctrl-tools (2.24-3build3) ... 619s Setting up autodep8 (0.30) ... 619s Setting up libmojolicious-perl (9.39+dfsg-1) ... 619s Setting up libtype-tiny-perl (2.004000-2) ... 619s Setting up libdevel-callchecker-perl:armhf (0.009-2) ... 619s Setting up libxs-parse-keyword-perl (0.48-2) ... 619s Setting up libdata-optlist-perl (0.114-1) ... 619s Setting up pkg-perl-autopkgtest (0.82) ... 619s Setting up libsyntax-keyword-try-perl (0.30-1) ... 619s Setting up libsub-exporter-perl (0.990-1) ... 619s Setting up libfeature-compat-try-perl (0.05-1) ... 619s Setting up libparams-classify-perl:armhf (0.015-2build6) ... 619s Setting up libmodule-runtime-perl (0.018-1) ... 619s Setting up libmodule-implementation-perl (0.09-2) ... 619s Setting up libpackage-stash-perl (0.40-1) ... 619s Setting up libimport-into-perl (1.002005-2) ... 619s Setting up libmoo-perl (2.005005-1) ... 619s Setting up libmoox-typetiny-perl (0.002003-4) ... 619s Setting up libparams-validate-perl:armhf (1.31-2build4) ... 619s Setting up libb-hooks-endofscope-perl (0.28-2) ... 619s Setting up libnamespace-clean-perl (0.27-2) ... 619s Setting up libbuiltin-compat-perl (0.003003-2) ... 619s Setting up libgetopt-long-descriptive-perl (0.116-2) ... 619s Setting up libjson-schema-modern-perl (0.611-1) ... 619s Processing triggers for man-db (2.13.1-1) ... 636s autopkgtest [15:16:53]: test autodep8-perl: /usr/share/pkg-perl-autopkgtest/runner runtime-deps 636s autopkgtest [15:16:53]: test autodep8-perl: [----------------------- 640s /usr/share/pkg-perl-autopkgtest/runtime-deps.d/use.t .. 640s 1..4 640s ok 1 - /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 exited successfully 640s ok 2 - /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 produced no (non-whitelisted) output 640s ok 3 - env PERL_DL_NONLAZY=1 /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 exited successfully 640s ok 4 - env PERL_DL_NONLAZY=1 /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 produced no (non-whitelisted) output 640s ok 640s All tests successful. 640s Files=1, Tests=4, 2 wallclock secs ( 0.03 usr 0.02 sys + 1.21 cusr 0.20 csys = 1.46 CPU) 640s Result: PASS 640s autopkgtest [15:16:57]: test autodep8-perl: -----------------------] 645s autopkgtest [15:17:02]: test autodep8-perl: - - - - - - - - - - results - - - - - - - - - - 645s autodep8-perl PASS (superficial) 649s autopkgtest [15:17:06]: test autodep8-perl-recommends: preparing testbed 651s Reading package lists... 651s Building dependency tree... 651s Reading state information... 651s Solving dependencies... 653s The following NEW packages will be installed: 653s libalgorithm-c3-perl libclass-c3-perl libclass-data-inheritable-perl 653s libclass-singleton-perl libclone-perl libdata-validate-domain-perl 653s libdatetime-format-rfc3339-perl libdatetime-locale-perl libdatetime-perl 653s libdatetime-timezone-perl libdevel-stacktrace-perl libemail-address-xs-perl 653s libeval-closure-perl libexception-class-perl libmro-compat-perl 653s libnamespace-autoclean-perl libnet-domain-tld-perl libnet-idn-encode-perl 653s libparams-validationcompiler-perl libref-util-xs-perl libsereal-decoder-perl 653s libsereal-encoder-perl libsereal-perl libspecio-perl libtime-moment-perl 653s libtype-tiny-xs-perl libxstring-perl 653s 0 upgraded, 27 newly installed, 0 to remove and 0 not upgraded. 653s Need to get 4318 kB of archives. 653s After this operation, 34.2 MB of additional disk space will be used. 653s Get:1 http://ftpmaster.internal/ubuntu resolute/universe armhf libalgorithm-c3-perl all 0.11-2 [10.2 kB] 653s Get:2 http://ftpmaster.internal/ubuntu resolute/universe armhf libclass-c3-perl all 0.35-2 [18.4 kB] 653s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf libclass-data-inheritable-perl all 0.10-1 [8038 B] 653s Get:4 http://ftpmaster.internal/ubuntu resolute/universe armhf libclass-singleton-perl all 1.6-2 [11.5 kB] 653s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libclone-perl armhf 0.47-1 [10.0 kB] 653s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libnet-domain-tld-perl all 1.75-4 [29.0 kB] 653s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf libdata-validate-domain-perl all 0.15-1 [10.4 kB] 653s Get:8 http://ftpmaster.internal/ubuntu resolute/universe armhf libnamespace-autoclean-perl all 0.31-1 [11.9 kB] 653s Get:9 http://ftpmaster.internal/ubuntu resolute/universe armhf libeval-closure-perl all 0.14-3 [10.1 kB] 653s Get:10 http://ftpmaster.internal/ubuntu resolute/main armhf libdevel-stacktrace-perl all 2.0500-1 [22.1 kB] 653s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf libexception-class-perl all 1.45-1 [28.6 kB] 653s Get:12 http://ftpmaster.internal/ubuntu resolute/universe armhf libparams-validationcompiler-perl all 0.31-1 [28.3 kB] 653s Get:13 http://ftpmaster.internal/ubuntu resolute/universe armhf libmro-compat-perl all 0.15-2 [10.1 kB] 653s Get:14 http://ftpmaster.internal/ubuntu resolute/universe armhf libxstring-perl armhf 0.005-2build4 [7650 B] 653s Get:15 http://ftpmaster.internal/ubuntu resolute/universe armhf libspecio-perl all 0.50-1 [127 kB] 653s Get:16 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-locale-perl all 1:1.41-1 [3193 kB] 654s Get:17 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-timezone-perl all 1:2.65-1+2025b [260 kB] 654s Get:18 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-perl armhf 2:1.65-1build3 [98.3 kB] 654s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf libdatetime-format-rfc3339-perl all 1.10.0-1 [8154 B] 654s Get:20 http://ftpmaster.internal/ubuntu resolute/main armhf libemail-address-xs-perl armhf 1.05-1build5 [26.5 kB] 654s Get:21 http://ftpmaster.internal/ubuntu resolute/universe armhf libnet-idn-encode-perl armhf 2.500-5build1 [83.7 kB] 654s Get:22 http://ftpmaster.internal/ubuntu resolute/universe armhf libref-util-xs-perl armhf 0.117-2build5 [11.5 kB] 654s Get:23 http://ftpmaster.internal/ubuntu resolute/main armhf libsereal-decoder-perl armhf 5.004+ds-1build5 [94.4 kB] 654s Get:24 http://ftpmaster.internal/ubuntu resolute/main armhf libsereal-encoder-perl armhf 5.004+ds-1build4 [96.1 kB] 654s Get:25 http://ftpmaster.internal/ubuntu resolute/universe armhf libsereal-perl all 5.004-1 [8770 B] 654s Get:26 http://ftpmaster.internal/ubuntu resolute/main armhf libtime-moment-perl armhf 0.44-2build5 [70.6 kB] 654s Get:27 http://ftpmaster.internal/ubuntu resolute/universe armhf libtype-tiny-xs-perl armhf 0.025-2build1 [23.5 kB] 655s Fetched 4318 kB in 1s (3700 kB/s) 655s Selecting previously unselected package libalgorithm-c3-perl. 655s (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 ... 62773 files and directories currently installed.) 655s Preparing to unpack .../00-libalgorithm-c3-perl_0.11-2_all.deb ... 655s Unpacking libalgorithm-c3-perl (0.11-2) ... 655s Selecting previously unselected package libclass-c3-perl. 655s Preparing to unpack .../01-libclass-c3-perl_0.35-2_all.deb ... 655s Unpacking libclass-c3-perl (0.35-2) ... 655s Selecting previously unselected package libclass-data-inheritable-perl. 655s Preparing to unpack .../02-libclass-data-inheritable-perl_0.10-1_all.deb ... 655s Unpacking libclass-data-inheritable-perl (0.10-1) ... 655s Selecting previously unselected package libclass-singleton-perl. 655s Preparing to unpack .../03-libclass-singleton-perl_1.6-2_all.deb ... 655s Unpacking libclass-singleton-perl (1.6-2) ... 655s Selecting previously unselected package libclone-perl:armhf. 655s Preparing to unpack .../04-libclone-perl_0.47-1_armhf.deb ... 655s Unpacking libclone-perl:armhf (0.47-1) ... 655s Selecting previously unselected package libnet-domain-tld-perl. 655s Preparing to unpack .../05-libnet-domain-tld-perl_1.75-4_all.deb ... 655s Unpacking libnet-domain-tld-perl (1.75-4) ... 655s Selecting previously unselected package libdata-validate-domain-perl. 655s Preparing to unpack .../06-libdata-validate-domain-perl_0.15-1_all.deb ... 655s Unpacking libdata-validate-domain-perl (0.15-1) ... 655s Selecting previously unselected package libnamespace-autoclean-perl. 655s Preparing to unpack .../07-libnamespace-autoclean-perl_0.31-1_all.deb ... 655s Unpacking libnamespace-autoclean-perl (0.31-1) ... 655s Selecting previously unselected package libeval-closure-perl. 655s Preparing to unpack .../08-libeval-closure-perl_0.14-3_all.deb ... 655s Unpacking libeval-closure-perl (0.14-3) ... 655s Selecting previously unselected package libdevel-stacktrace-perl. 655s Preparing to unpack .../09-libdevel-stacktrace-perl_2.0500-1_all.deb ... 655s Unpacking libdevel-stacktrace-perl (2.0500-1) ... 655s Selecting previously unselected package libexception-class-perl. 655s Preparing to unpack .../10-libexception-class-perl_1.45-1_all.deb ... 655s Unpacking libexception-class-perl (1.45-1) ... 655s Selecting previously unselected package libparams-validationcompiler-perl. 655s Preparing to unpack .../11-libparams-validationcompiler-perl_0.31-1_all.deb ... 655s Unpacking libparams-validationcompiler-perl (0.31-1) ... 655s Selecting previously unselected package libmro-compat-perl. 655s Preparing to unpack .../12-libmro-compat-perl_0.15-2_all.deb ... 655s Unpacking libmro-compat-perl (0.15-2) ... 655s Selecting previously unselected package libxstring-perl:armhf. 655s Preparing to unpack .../13-libxstring-perl_0.005-2build4_armhf.deb ... 655s Unpacking libxstring-perl:armhf (0.005-2build4) ... 655s Selecting previously unselected package libspecio-perl. 656s Preparing to unpack .../14-libspecio-perl_0.50-1_all.deb ... 656s Unpacking libspecio-perl (0.50-1) ... 656s Selecting previously unselected package libdatetime-locale-perl. 656s Preparing to unpack .../15-libdatetime-locale-perl_1%3a1.41-1_all.deb ... 656s Unpacking libdatetime-locale-perl (1:1.41-1) ... 656s Selecting previously unselected package libdatetime-timezone-perl. 656s Preparing to unpack .../16-libdatetime-timezone-perl_1%3a2.65-1+2025b_all.deb ... 656s Unpacking libdatetime-timezone-perl (1:2.65-1+2025b) ... 656s Selecting previously unselected package libdatetime-perl. 656s Preparing to unpack .../17-libdatetime-perl_2%3a1.65-1build3_armhf.deb ... 656s Unpacking libdatetime-perl (2:1.65-1build3) ... 656s Selecting previously unselected package libdatetime-format-rfc3339-perl. 656s Preparing to unpack .../18-libdatetime-format-rfc3339-perl_1.10.0-1_all.deb ... 656s Unpacking libdatetime-format-rfc3339-perl (1.10.0-1) ... 656s Selecting previously unselected package libemail-address-xs-perl. 656s Preparing to unpack .../19-libemail-address-xs-perl_1.05-1build5_armhf.deb ... 656s Unpacking libemail-address-xs-perl (1.05-1build5) ... 657s Selecting previously unselected package libnet-idn-encode-perl. 657s Preparing to unpack .../20-libnet-idn-encode-perl_2.500-5build1_armhf.deb ... 657s Unpacking libnet-idn-encode-perl (2.500-5build1) ... 657s Selecting previously unselected package libref-util-xs-perl. 657s Preparing to unpack .../21-libref-util-xs-perl_0.117-2build5_armhf.deb ... 657s Unpacking libref-util-xs-perl (0.117-2build5) ... 657s Selecting previously unselected package libsereal-decoder-perl. 657s Preparing to unpack .../22-libsereal-decoder-perl_5.004+ds-1build5_armhf.deb ... 657s Unpacking libsereal-decoder-perl (5.004+ds-1build5) ... 657s Selecting previously unselected package libsereal-encoder-perl. 657s Preparing to unpack .../23-libsereal-encoder-perl_5.004+ds-1build4_armhf.deb ... 657s Unpacking libsereal-encoder-perl (5.004+ds-1build4) ... 657s Selecting previously unselected package libsereal-perl. 657s Preparing to unpack .../24-libsereal-perl_5.004-1_all.deb ... 657s Unpacking libsereal-perl (5.004-1) ... 657s Selecting previously unselected package libtime-moment-perl. 657s Preparing to unpack .../25-libtime-moment-perl_0.44-2build5_armhf.deb ... 657s Unpacking libtime-moment-perl (0.44-2build5) ... 657s Selecting previously unselected package libtype-tiny-xs-perl:armhf. 657s Preparing to unpack .../26-libtype-tiny-xs-perl_0.025-2build1_armhf.deb ... 657s Unpacking libtype-tiny-xs-perl:armhf (0.025-2build1) ... 657s Setting up libref-util-xs-perl (0.117-2build5) ... 657s Setting up libnet-idn-encode-perl (2.500-5build1) ... 657s Setting up libclone-perl:armhf (0.47-1) ... 657s Setting up libclass-singleton-perl (1.6-2) ... 657s Setting up libtime-moment-perl (0.44-2build5) ... 657s Setting up libxstring-perl:armhf (0.005-2build4) ... 657s Setting up libsereal-encoder-perl (5.004+ds-1build4) ... 657s Setting up libclass-data-inheritable-perl (0.10-1) ... 657s Setting up libalgorithm-c3-perl (0.11-2) ... 657s Setting up libnet-domain-tld-perl (1.75-4) ... 657s Setting up libtype-tiny-xs-perl:armhf (0.025-2build1) ... 657s Setting up libdata-validate-domain-perl (0.15-1) ... 657s Setting up libdevel-stacktrace-perl (2.0500-1) ... 657s Setting up libnamespace-autoclean-perl (0.31-1) ... 657s Setting up libsereal-decoder-perl (5.004+ds-1build5) ... 657s Setting up libeval-closure-perl (0.14-3) ... 657s Setting up libemail-address-xs-perl (1.05-1build5) ... 657s Setting up libsereal-perl (5.004-1) ... 657s Setting up libexception-class-perl (1.45-1) ... 657s Setting up libclass-c3-perl (0.35-2) ... 657s Setting up libmro-compat-perl (0.15-2) ... 657s Setting up libparams-validationcompiler-perl (0.31-1) ... 657s Setting up libspecio-perl (0.50-1) ... 657s Setting up libdatetime-locale-perl (1:1.41-1) ... 657s Setting up libdatetime-timezone-perl (1:2.65-1+2025b) ... 657s Setting up libdatetime-perl (2:1.65-1build3) ... 657s Setting up libdatetime-format-rfc3339-perl (1.10.0-1) ... 657s Processing triggers for man-db (2.13.1-1) ... 666s autopkgtest [15:17:23]: test autodep8-perl-recommends: /usr/share/pkg-perl-autopkgtest/runner runtime-deps-and-recommends 666s autopkgtest [15:17:23]: test autodep8-perl-recommends: [----------------------- 671s /usr/share/pkg-perl-autopkgtest/runtime-deps-and-recommends.d/syntax.t .. 671s 1..4 671s ok 1 - Package libjson-schema-modern-perl is known to dpkg 671s ok 2 - Got status information for package libjson-schema-modern-perl 671s ok 3 - Got file list for package libjson-schema-modern-perl 671s # Subtest: all modules in libjson-schema-modern-perl pass the syntax check 671s 1..16 671s ok 1 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Annotation.pm exited successfully 671s ok 2 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Document.pm exited successfully 671s ok 3 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Error.pm exited successfully 671s ok 4 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Result.pm exited successfully 671s ok 5 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/ResultNode.pm exited successfully 671s ok 6 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Utilities.pm exited successfully 671s ok 7 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Applicator.pm exited successfully 671s ok 8 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Content.pm exited successfully 671s ok 9 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Core.pm exited successfully 671s ok 10 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/FormatAnnotation.pm exited successfully 671s ok 11 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/FormatAssertion.pm exited successfully 671s ok 12 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/MetaData.pm exited successfully 671s ok 13 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Unevaluated.pm exited successfully 671s ok 14 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Validation.pm exited successfully 671s ok 15 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary.pm exited successfully 671s ok 16 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern.pm exited successfully 671s ok 4 - all modules in libjson-schema-modern-perl pass the syntax check 671s ok 671s All tests successful. 671s Files=1, Tests=4, 3 wallclock secs ( 0.03 usr 0.01 sys + 2.34 cusr 0.47 csys = 2.85 CPU) 671s Result: PASS 671s autopkgtest [15:17:28]: test autodep8-perl-recommends: -----------------------] 675s autopkgtest [15:17:32]: test autodep8-perl-recommends: - - - - - - - - - - results - - - - - - - - - - 675s autodep8-perl-recommends PASS (superficial) 679s autopkgtest [15:17:36]: @@@@@@@@@@@@@@@@@@@@ summary 679s autodep8-perl-build-deps PASS 679s autodep8-perl PASS (superficial) 679s autodep8-perl-recommends PASS (superficial)